rivetkit 2.3.11 → 2.3.12-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/browser/client.d.ts +4 -0
  2. package/dist/browser/client.js +65 -32
  3. package/dist/browser/client.js.map +1 -1
  4. package/dist/browser/inspector/client.js +1 -1
  5. package/dist/browser/inspector/client.js.map +1 -1
  6. package/dist/tsup/actor/errors.cjs +2 -2
  7. package/dist/tsup/actor/errors.d.cts +1 -1
  8. package/dist/tsup/actor/errors.d.ts +1 -1
  9. package/dist/tsup/actor/errors.js +1 -1
  10. package/dist/tsup/agent-os/index.cjs +2 -2
  11. package/dist/tsup/agent-os/index.cjs.map +1 -1
  12. package/dist/tsup/agent-os/index.d.cts +4 -0
  13. package/dist/tsup/agent-os/index.d.ts +4 -0
  14. package/dist/tsup/agent-os/index.js +2 -2
  15. package/dist/tsup/agent-os/index.js.map +1 -1
  16. package/dist/tsup/{chunk-MO2SSUOR.js → chunk-3JBE7REK.js} +4 -4
  17. package/dist/tsup/{chunk-5UYWLCRO.js → chunk-6XR7IKBZ.js} +2 -2
  18. package/dist/tsup/{chunk-GU7ML3KE.cjs → chunk-APQQFCPR.cjs} +15 -10
  19. package/dist/tsup/chunk-APQQFCPR.cjs.map +1 -0
  20. package/dist/tsup/{chunk-3ZR542SK.js → chunk-BK2JOGQQ.js} +62 -36
  21. package/dist/tsup/chunk-BK2JOGQQ.js.map +1 -0
  22. package/dist/tsup/{chunk-VBJQIBXI.cjs → chunk-CZKQ2UR5.cjs} +4 -4
  23. package/dist/tsup/{chunk-VBJQIBXI.cjs.map → chunk-CZKQ2UR5.cjs.map} +1 -1
  24. package/dist/tsup/{chunk-RXXDNJXB.cjs → chunk-DXN6RPPQ.cjs} +214 -188
  25. package/dist/tsup/chunk-DXN6RPPQ.cjs.map +1 -0
  26. package/dist/tsup/{chunk-GLIPKKEC.cjs → chunk-GGGZ4TN7.cjs} +7 -7
  27. package/dist/tsup/{chunk-GLIPKKEC.cjs.map → chunk-GGGZ4TN7.cjs.map} +1 -1
  28. package/dist/tsup/{chunk-LWQFXGKS.cjs → chunk-HRJHLVHZ.cjs} +3 -3
  29. package/dist/tsup/{chunk-LWQFXGKS.cjs.map → chunk-HRJHLVHZ.cjs.map} +1 -1
  30. package/dist/tsup/{chunk-PUZY2XCD.cjs → chunk-IU6TTH6L.cjs} +10 -10
  31. package/dist/tsup/{chunk-PUZY2XCD.cjs.map → chunk-IU6TTH6L.cjs.map} +1 -1
  32. package/dist/tsup/{chunk-ZZ3WBRPD.js → chunk-IXBD7BXC.js} +15 -4
  33. package/dist/tsup/chunk-IXBD7BXC.js.map +1 -0
  34. package/dist/tsup/{chunk-JQ2AZ5FN.js → chunk-JZGMOEEI.js} +3 -3
  35. package/dist/tsup/{chunk-QFJ24MBU.js → chunk-KPZQI3TG.js} +2 -2
  36. package/dist/tsup/{chunk-6WYATRS4.js → chunk-KRQI5GXM.js} +2 -2
  37. package/dist/tsup/{chunk-4FC7TVS6.cjs → chunk-SPJORZMM.cjs} +15 -4
  38. package/dist/tsup/chunk-SPJORZMM.cjs.map +1 -0
  39. package/dist/tsup/{chunk-B3W74FBB.cjs → chunk-WTD54OHL.cjs} +3 -3
  40. package/dist/tsup/{chunk-B3W74FBB.cjs.map → chunk-WTD54OHL.cjs.map} +1 -1
  41. package/dist/tsup/{chunk-GN2EUMEW.cjs → chunk-XBPOYV4E.cjs} +3 -3
  42. package/dist/tsup/{chunk-GN2EUMEW.cjs.map → chunk-XBPOYV4E.cjs.map} +1 -1
  43. package/dist/tsup/{chunk-OUENKQHB.js → chunk-YW75TS76.js} +8 -3
  44. package/dist/tsup/chunk-YW75TS76.js.map +1 -0
  45. package/dist/tsup/{chunk-FWROC5LA.js → chunk-ZEIH7S4M.js} +2 -2
  46. package/dist/tsup/client/mod.cjs +6 -6
  47. package/dist/tsup/client/mod.d.cts +5 -5
  48. package/dist/tsup/client/mod.d.ts +5 -5
  49. package/dist/tsup/client/mod.js +5 -5
  50. package/dist/tsup/common/log.cjs +3 -3
  51. package/dist/tsup/common/log.js +2 -2
  52. package/dist/tsup/common/websocket.cjs +4 -4
  53. package/dist/tsup/common/websocket.js +3 -3
  54. package/dist/tsup/{config-DTGoWdkG.d.cts → config-BXSV17G7.d.cts} +2 -2
  55. package/dist/tsup/{config-C4OSv0QP.d.ts → config-Bi1r6gI7.d.ts} +2 -2
  56. package/dist/tsup/{context-C6cvDNyk.d.cts → context-4fJemY0D.d.cts} +1 -1
  57. package/dist/tsup/{context-CMygeBxS.d.ts → context-D4sNYboo.d.ts} +1 -1
  58. package/dist/tsup/db/drizzle.cjs +3 -3
  59. package/dist/tsup/db/drizzle.js +2 -2
  60. package/dist/tsup/db/mod.cjs +4 -4
  61. package/dist/tsup/db/mod.js +3 -3
  62. package/dist/tsup/dynamic/mod.d.cts +3 -3
  63. package/dist/tsup/dynamic/mod.d.ts +3 -3
  64. package/dist/tsup/inspector/mod.cjs +6 -6
  65. package/dist/tsup/inspector/mod.js +5 -5
  66. package/dist/tsup/inspector/workflow.cjs +5 -5
  67. package/dist/tsup/inspector/workflow.js +4 -4
  68. package/dist/tsup/inspector-tab/mod.d.cts +4 -4
  69. package/dist/tsup/inspector-tab/mod.d.ts +4 -4
  70. package/dist/tsup/mod.cjs +112 -111
  71. package/dist/tsup/mod.cjs.map +1 -1
  72. package/dist/tsup/mod.d.cts +5 -5
  73. package/dist/tsup/mod.d.ts +5 -5
  74. package/dist/tsup/mod.js +10 -9
  75. package/dist/tsup/mod.js.map +1 -1
  76. package/dist/tsup/test/mod.cjs +7 -7
  77. package/dist/tsup/test/mod.d.cts +3 -3
  78. package/dist/tsup/test/mod.d.ts +3 -3
  79. package/dist/tsup/test/mod.js +5 -5
  80. package/dist/tsup/{utils-DQDCphrl.d.cts → utils-Bbz-3411.d.cts} +1 -1
  81. package/dist/tsup/{utils-CV0akuDD.d.ts → utils-BqdWVlzm.d.ts} +1 -1
  82. package/dist/tsup/{utils-CqDnC_PS.d.cts → utils-vvJQyygr.d.cts} +5 -0
  83. package/dist/tsup/{utils-CqDnC_PS.d.ts → utils-vvJQyygr.d.ts} +5 -0
  84. package/dist/tsup/utils.cjs +3 -3
  85. package/dist/tsup/utils.d.cts +2 -2
  86. package/dist/tsup/utils.d.ts +2 -2
  87. package/dist/tsup/utils.js +2 -2
  88. package/dist/tsup/workflow/mod.cjs +11 -11
  89. package/dist/tsup/workflow/mod.cjs.map +1 -1
  90. package/dist/tsup/workflow/mod.d.cts +5 -5
  91. package/dist/tsup/workflow/mod.d.ts +5 -5
  92. package/dist/tsup/workflow/mod.js +5 -5
  93. package/package.json +8 -8
  94. package/src/actor/errors.ts +29 -2
  95. package/src/client/actor-conn.ts +5 -4
  96. package/src/client/actor-handle.ts +32 -9
  97. package/src/client/actor-query.ts +8 -1
  98. package/src/client/errors.ts +2 -1
  99. package/src/client/raw-utils.ts +3 -5
  100. package/src/client/utils.ts +2 -0
  101. package/src/common/utils.ts +6 -0
  102. package/src/registry/native.ts +1 -0
  103. package/dist/tsup/chunk-3ZR542SK.js.map +0 -1
  104. package/dist/tsup/chunk-4FC7TVS6.cjs.map +0 -1
  105. package/dist/tsup/chunk-GU7ML3KE.cjs.map +0 -1
  106. package/dist/tsup/chunk-OUENKQHB.js.map +0 -1
  107. package/dist/tsup/chunk-RXXDNJXB.cjs.map +0 -1
  108. package/dist/tsup/chunk-ZZ3WBRPD.js.map +0 -1
  109. /package/dist/tsup/{chunk-MO2SSUOR.js.map → chunk-3JBE7REK.js.map} +0 -0
  110. /package/dist/tsup/{chunk-5UYWLCRO.js.map → chunk-6XR7IKBZ.js.map} +0 -0
  111. /package/dist/tsup/{chunk-JQ2AZ5FN.js.map → chunk-JZGMOEEI.js.map} +0 -0
  112. /package/dist/tsup/{chunk-QFJ24MBU.js.map → chunk-KPZQI3TG.js.map} +0 -0
  113. /package/dist/tsup/{chunk-6WYATRS4.js.map → chunk-KRQI5GXM.js.map} +0 -0
  114. /package/dist/tsup/{chunk-FWROC5LA.js.map → chunk-ZEIH7S4M.js.map} +0 -0
@@ -286,6 +286,7 @@ interface DeconstructedError {
286
286
  code: string;
287
287
  message: string;
288
288
  metadata?: unknown;
289
+ rayId?: string;
289
290
  actor?: ActorSpecifier;
290
291
  }
291
292
 
@@ -294,6 +295,8 @@ interface RivetErrorOptions extends ErrorOptions {
294
295
  public?: boolean;
295
296
  /** Metadata associated with this error. */
296
297
  metadata?: unknown;
298
+ /** Request identifier used to correlate this error with engine logs. */
299
+ rayId?: string;
297
300
  /** Explicit HTTP status override for router responses. */
298
301
  statusCode?: number;
299
302
  /** Actor context associated with this error. */
@@ -321,6 +324,7 @@ declare class RivetError extends Error {
321
324
  __type: "RivetError";
322
325
  public: boolean;
323
326
  metadata?: unknown;
327
+ readonly rayId?: string;
324
328
  statusCode: number;
325
329
  actor?: ActorSpecifier;
326
330
  readonly group: string;
@@ -10,7 +10,7 @@ var INTERNAL_ERROR_CODE = "internal_error";
10
10
  var INTERNAL_ERROR_DESCRIPTION = "An internal error occurred";
11
11
  var USER_ERROR_CODE = "user_error";
12
12
  function looksLikeRivetErrorOptions(value) {
13
- return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "statusCode" in value || "actor" in value || "cause" in value);
13
+ return typeof value === "object" && value !== null && ("public" in value || "metadata" in value || "rayId" in value || "statusCode" in value || "actor" in value || "cause" in value);
14
14
  }
15
15
  function isTypedErrorTag(value) {
16
16
  return value === "ActorError" || value === "RivetError";
@@ -22,12 +22,13 @@ function errorMessage(error, fallback = String(error)) {
22
22
  return fallback;
23
23
  }
24
24
  function isRivetErrorLike(error) {
25
- return typeof error === "object" && error !== null && "group" in error && typeof error.group === "string" && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string" && (!("__type" in error) || isTypedErrorTag(error.__type));
25
+ return typeof error === "object" && error !== null && "group" in error && typeof error.group === "string" && "code" in error && typeof error.code === "string" && "message" in error && typeof error.message === "string" && (!("rayId" in error) || error.rayId === void 0 || typeof error.rayId === "string") && (!("__type" in error) || isTypedErrorTag(error.__type));
26
26
  }
27
27
  var RivetError = class extends Error {
28
28
  __type = "RivetError";
29
29
  public;
30
30
  metadata;
31
+ rayId;
31
32
  statusCode;
32
33
  actor;
33
34
  group;
@@ -46,6 +47,7 @@ var RivetError = class extends Error {
46
47
  this.code = code;
47
48
  this.public = normalized.public ?? false;
48
49
  this.metadata = normalized.metadata;
50
+ this.rayId = normalized.rayId ?? void 0;
49
51
  this.statusCode = normalized.statusCode ?? (this.public ? 400 : 500);
50
52
  this.actor = normalized.actor;
51
53
  }
@@ -96,6 +98,7 @@ function deconstructError(error, exposeInternalError = false) {
96
98
  let code;
97
99
  let message;
98
100
  let metadata;
101
+ let rayId;
99
102
  let actor;
100
103
  if (isCanonicalStructuredRivetError(error)) {
101
104
  statusCode = typeof error.statusCode === "number" ? error.statusCode : error.public ? 400 : 500;
@@ -104,6 +107,7 @@ function deconstructError(error, exposeInternalError = false) {
104
107
  code = error.code;
105
108
  message = error.message;
106
109
  metadata = error.metadata;
110
+ rayId = error.rayId;
107
111
  actor = error.actor;
108
112
  } else if (RivetError.isActorError(error) && error.public) {
109
113
  statusCode = "statusCode" in error && error.statusCode ? error.statusCode : 400;
@@ -112,6 +116,7 @@ function deconstructError(error, exposeInternalError = false) {
112
116
  code = error.code;
113
117
  message = getErrorMessage(error);
114
118
  metadata = error.metadata;
119
+ rayId = error.rayId;
115
120
  actor = error.actor;
116
121
  } else if (exposeInternalError) {
117
122
  if (RivetError.isActorError(error)) {
@@ -121,6 +126,7 @@ function deconstructError(error, exposeInternalError = false) {
121
126
  code = error.code;
122
127
  message = getErrorMessage(error);
123
128
  metadata = error.metadata;
129
+ rayId = error.rayId;
124
130
  actor = error.actor;
125
131
  } else {
126
132
  statusCode = 500;
@@ -150,6 +156,7 @@ function deconstructError(error, exposeInternalError = false) {
150
156
  code,
151
157
  message,
152
158
  metadata,
159
+ rayId,
153
160
  actor
154
161
  };
155
162
  }
@@ -194,7 +201,7 @@ function noopNext() {
194
201
  // package.json
195
202
  var package_default = {
196
203
  name: "rivetkit",
197
- version: "2.3.11",
204
+ version: "2.3.12-rc.2",
198
205
  description: "Lightweight libraries for building stateful actors on edge platforms",
199
206
  license: "Apache-2.0",
200
207
  keywords: [
@@ -3689,12 +3696,12 @@ var ActorConnDisposed = class extends ActorClientError {
3689
3696
  function isSchedulingError(group, code) {
3690
3697
  return group === "guard" && (code === "actor_ready_timeout" || code === "actor_runner_failed");
3691
3698
  }
3692
- function actorSchedulingError(group, code, actorId, details) {
3699
+ function actorSchedulingError(group, code, actorId, details, rayId) {
3693
3700
  return new RivetError(
3694
3701
  group,
3695
3702
  code,
3696
3703
  `Actor failed to start (${actorId}): ${JSON.stringify(details)}`,
3697
- { metadata: { actorId, details } }
3704
+ { metadata: { actorId, details }, rayId }
3698
3705
  );
3699
3706
  }
3700
3707
  function internalClientError(message, opts) {
@@ -3813,6 +3820,7 @@ async function sendHttpRequest(opts) {
3813
3820
  code: responseData.code,
3814
3821
  message: responseData.message,
3815
3822
  metadata: responseData.metadata,
3823
+ rayId,
3816
3824
  actorId: responseData.actor?.actorId,
3817
3825
  generation: responseData.actor?.generation,
3818
3826
  actorKey: responseData.actor?.key
@@ -3823,6 +3831,7 @@ async function sendHttpRequest(opts) {
3823
3831
  responseData.message,
3824
3832
  {
3825
3833
  metadata: responseData.metadata,
3834
+ rayId: rayId ?? void 0,
3826
3835
  actor: responseData.actor
3827
3836
  }
3828
3837
  );
@@ -4489,7 +4498,7 @@ function getGatewayTarget(state) {
4489
4498
  function isStaleResolvedActorError(group, code) {
4490
4499
  return group === "actor" && (code === "not_found" || code === "starting" || code === "stopping" || code === "not_configured" || code === "dropped_reply" || code.startsWith("destroyed_"));
4491
4500
  }
4492
- async function checkForSchedulingError(group, code, actorId, query, driver) {
4501
+ async function checkForSchedulingError(group, code, actorId, query, driver, rayId) {
4493
4502
  const name = getActorNameFromQuery(query);
4494
4503
  try {
4495
4504
  const actor = await driver.getForId({ name, actorId });
@@ -4499,7 +4508,13 @@ async function checkForSchedulingError(group, code, actorId, query, driver) {
4499
4508
  actorId,
4500
4509
  error: actor.error
4501
4510
  });
4502
- return actorSchedulingError(group, code, actorId, actor.error);
4511
+ return actorSchedulingError(
4512
+ group,
4513
+ code,
4514
+ actorId,
4515
+ actor.error,
4516
+ rayId
4517
+ );
4503
4518
  }
4504
4519
  } catch (err) {
4505
4520
  logger2().warn({
@@ -5328,7 +5343,7 @@ var ActorConnRaw = class {
5328
5343
  const reason = closeEvent.reason || "";
5329
5344
  const parsed = parseWebSocketCloseReason(reason);
5330
5345
  if (parsed) {
5331
- const { group, code } = parsed;
5346
+ const { group, code, rayId } = parsed;
5332
5347
  if (this.#shouldReconnectForStaleActor(group, code)) {
5333
5348
  this.#clearResolvedActorIdentity();
5334
5349
  this.#onOpenPromise?.reject(
@@ -5336,7 +5351,7 @@ var ActorConnRaw = class {
5336
5351
  group,
5337
5352
  code,
5338
5353
  `Connection closed: ${reason}`,
5339
- void 0
5354
+ { rayId }
5340
5355
  )
5341
5356
  );
5342
5357
  return;
@@ -5347,7 +5362,8 @@ var ActorConnRaw = class {
5347
5362
  code,
5348
5363
  this.#actorId,
5349
5364
  this.#actorResolutionState,
5350
- this.#driver
5365
+ this.#driver,
5366
+ rayId
5351
5367
  );
5352
5368
  if (schedulingError) {
5353
5369
  error = schedulingError;
@@ -5356,7 +5372,7 @@ var ActorConnRaw = class {
5356
5372
  group,
5357
5373
  code,
5358
5374
  `Connection closed: ${reason}`,
5359
- void 0
5375
+ { rayId }
5360
5376
  );
5361
5377
  }
5362
5378
  } else {
@@ -5364,7 +5380,7 @@ var ActorConnRaw = class {
5364
5380
  group,
5365
5381
  code,
5366
5382
  `Connection closed: ${reason}`,
5367
- void 0
5383
+ { rayId }
5368
5384
  );
5369
5385
  }
5370
5386
  this.#invalidateActorIfStale(group, code);
@@ -5946,11 +5962,8 @@ async function rawHttpFetch(driver, target, params, input, init, options = {}) {
5946
5962
  });
5947
5963
  return driver.sendRequest(target, proxyRequest, options);
5948
5964
  } catch (err) {
5949
- const { group, code, message, metadata, actor } = deconstructError(
5950
- err,
5951
- true
5952
- );
5953
- throw new RivetError(group, code, message, { metadata, actor });
5965
+ const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
5966
+ throw new RivetError(group, code, message, { metadata, rayId, actor });
5954
5967
  }
5955
5968
  }
5956
5969
  async function rawWebSocket(driver, target, params, path, _protocols, options = {}) {
@@ -6093,7 +6106,7 @@ var ActorHandleRaw = class {
6093
6106
  }
6094
6107
  }).send(name, body, options);
6095
6108
  } catch (err) {
6096
- const { group, code, message, metadata, actor } = deconstructError(err, true);
6109
+ const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
6097
6110
  if (this.#shouldRetryQueueDispatchOverload(
6098
6111
  group,
6099
6112
  code,
@@ -6109,7 +6122,8 @@ var ActorHandleRaw = class {
6109
6122
  code,
6110
6123
  actorId,
6111
6124
  attempt,
6112
- maxAttempts
6125
+ maxAttempts,
6126
+ rayId
6113
6127
  )) {
6114
6128
  useQueryTarget = true;
6115
6129
  await this.#waitForRetryWindow();
@@ -6139,6 +6153,7 @@ var ActorHandleRaw = class {
6139
6153
  }
6140
6154
  throw new RivetError(group, code, message, {
6141
6155
  metadata,
6156
+ rayId,
6142
6157
  actor
6143
6158
  });
6144
6159
  }
@@ -6232,13 +6247,14 @@ var ActorHandleRaw = class {
6232
6247
  }
6233
6248
  return output;
6234
6249
  } catch (err) {
6235
- const { group, code, message, metadata, actor } = deconstructError(err, true);
6250
+ const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
6236
6251
  if (await this.#shouldRetrySchedulingError(
6237
6252
  group,
6238
6253
  code,
6239
6254
  actorId,
6240
6255
  attempt,
6241
- maxAttempts
6256
+ maxAttempts,
6257
+ rayId
6242
6258
  )) {
6243
6259
  useQueryTarget = true;
6244
6260
  await this.#waitForRetryWindow();
@@ -6260,7 +6276,7 @@ var ActorHandleRaw = class {
6260
6276
  "actor",
6261
6277
  "not_found",
6262
6278
  "The actor does not exist or was destroyed.",
6263
- { metadata, actor }
6279
+ { metadata, rayId, actor }
6264
6280
  );
6265
6281
  }
6266
6282
  const invalidated = this.#invalidateResolvedActorId(
@@ -6276,7 +6292,11 @@ var ActorHandleRaw = class {
6276
6292
  }
6277
6293
  continue;
6278
6294
  }
6279
- throw new RivetError(group, code, message, { metadata, actor });
6295
+ throw new RivetError(group, code, message, {
6296
+ metadata,
6297
+ rayId,
6298
+ actor
6299
+ });
6280
6300
  }
6281
6301
  }
6282
6302
  throw new Error("unreachable action retry state");
@@ -6318,7 +6338,7 @@ var ActorHandleRaw = class {
6318
6338
  this.#resolvedActorId = void 0;
6319
6339
  this.#resolvingActorId = void 0;
6320
6340
  }
6321
- async #shouldRetrySchedulingError(group, code, actorId, attempt, maxAttempts) {
6341
+ async #shouldRetrySchedulingError(group, code, actorId, attempt, maxAttempts, rayId) {
6322
6342
  if (!isDynamicActorQuery(this.#actorResolutionState) || !isSchedulingError(group, code) || attempt >= maxAttempts - 1) {
6323
6343
  return false;
6324
6344
  }
@@ -6328,7 +6348,8 @@ var ActorHandleRaw = class {
6328
6348
  code,
6329
6349
  actorId,
6330
6350
  this.#actorResolutionState,
6331
- this.#driver
6351
+ this.#driver,
6352
+ rayId
6332
6353
  );
6333
6354
  if (schedulingError) {
6334
6355
  throw schedulingError;
@@ -6449,13 +6470,14 @@ var ActorHandleRaw = class {
6449
6470
  }
6450
6471
  return response;
6451
6472
  } catch (err) {
6452
- const { group, code, message, metadata, actor } = deconstructError(err, true);
6473
+ const { group, code, message, metadata, rayId, actor } = deconstructError(err, true);
6453
6474
  if (await this.#shouldRetrySchedulingError(
6454
6475
  group,
6455
6476
  code,
6456
6477
  actorId,
6457
6478
  attempt,
6458
- maxAttempts
6479
+ maxAttempts,
6480
+ rayId
6459
6481
  )) {
6460
6482
  useQueryTarget = true;
6461
6483
  await this.#waitForRetryWindow();
@@ -6483,7 +6505,11 @@ var ActorHandleRaw = class {
6483
6505
  }
6484
6506
  continue;
6485
6507
  }
6486
- throw new RivetError(group, code, message, { metadata, actor });
6508
+ throw new RivetError(group, code, message, {
6509
+ metadata,
6510
+ rayId,
6511
+ actor
6512
+ });
6487
6513
  }
6488
6514
  }
6489
6515
  throw new Error("unreachable fetch retry state");
@@ -6496,13 +6522,14 @@ var ActorHandleRaw = class {
6496
6522
  if (!error) {
6497
6523
  return null;
6498
6524
  }
6499
- const { group, code } = error;
6525
+ const { group, code, rayId } = error;
6500
6526
  if (await this.#shouldRetrySchedulingError(
6501
6527
  group,
6502
6528
  code,
6503
6529
  actorId,
6504
6530
  attempt,
6505
- maxAttempts
6531
+ maxAttempts,
6532
+ rayId
6506
6533
  )) {
6507
6534
  return {
6508
6535
  useQueryTarget: true,
@@ -6538,7 +6565,7 @@ var ActorHandleRaw = class {
6538
6565
  const contentType = response.headers.get("content-type");
6539
6566
  const encoding = contentType?.includes("application/json") ? "json" : this.#encoding;
6540
6567
  try {
6541
- return deserializeWithEncoding(
6568
+ const error = deserializeWithEncoding(
6542
6569
  encoding,
6543
6570
  new Uint8Array(await response.clone().arrayBuffer()),
6544
6571
  HTTP_RESPONSE_ERROR_VERSIONED,
@@ -6562,6 +6589,10 @@ var ActorHandleRaw = class {
6562
6589
  } : void 0
6563
6590
  })
6564
6591
  );
6592
+ return {
6593
+ ...error,
6594
+ rayId: response.headers.get("x-rivet-ray-id") ?? void 0
6595
+ };
6565
6596
  } catch {
6566
6597
  return null;
6567
6598
  }
@@ -6625,7 +6656,9 @@ var ActorHandleRaw = class {
6625
6656
  "actor",
6626
6657
  "reload_failed",
6627
6658
  `reload failed with status ${response.status}: ${body}`,
6628
- {}
6659
+ {
6660
+ rayId: response.headers.get("x-rivet-ray-id") ?? void 0
6661
+ }
6629
6662
  );
6630
6663
  }
6631
6664
  }