Skip to content

Commit 4400c90

Browse files
committed
fix: log error on failed inspector requests
1 parent b370ada commit 4400c90

10 files changed

Lines changed: 55 additions & 41 deletions

File tree

engine/sdks/typescript/runner/src/mod.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,14 +1214,14 @@ export class Runner {
12141214
await this.#config.onActorStart(actorId, generation, actorConfig);
12151215

12161216
instance.actorStartPromise.resolve();
1217-
} catch (err) {
1217+
} catch (error) {
12181218
this.log?.error({
12191219
msg: "error starting runner actor",
12201220
actorId,
1221-
err,
1221+
error,
12221222
});
12231223

1224-
instance.actorStartPromise.reject(err);
1224+
instance.actorStartPromise.reject(error);
12251225

12261226
// TODO: Mark as crashed
12271227
// Send stopped state update if start failed

engine/sdks/typescript/test-runner/src/log.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export async function configureDefaultLogger(): Promise<void> {
8585
baseLogger = pino({
8686
level: getPinoLevel(),
8787
messageKey: "msg",
88+
errorKey: "error",
8889
// Do not include pid/hostname in output
8990
base: {},
9091
// Keep a string level in the output

rivetkit-typescript/packages/engine-runner/src/mod.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1178,14 +1178,14 @@ export class Runner {
11781178
await this.#config.onActorStart(actorId, generation, actorConfig);
11791179

11801180
instance.actorStartPromise.resolve();
1181-
} catch (err) {
1181+
} catch (error) {
11821182
this.log?.error({
11831183
msg: "error starting runner actor",
11841184
actorId,
1185-
err,
1185+
error,
11861186
});
11871187

1188-
instance.actorStartPromise.reject(err);
1188+
instance.actorStartPromise.reject(error);
11891189

11901190
// TODO: Mark as crashed
11911191
// Send stopped state update if start failed

rivetkit-typescript/packages/rivetkit/fixtures/driver-test-suite/sleep-db.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ export const sleepWithDbConn = actor({
279279
} catch (error) {
280280
c.log.warn({
281281
msg: "onDisconnect db write failed",
282-
error: error instanceof Error ? error.message : String(error),
282+
error,
283283
});
284284
}
285285
},
@@ -292,7 +292,7 @@ export const sleepWithDbConn = actor({
292292
} catch (error) {
293293
c.log.warn({
294294
msg: "onSleep db write failed",
295-
error: error instanceof Error ? error.message : String(error),
295+
error,
296296
});
297297
}
298298
},
@@ -369,7 +369,7 @@ export const sleepWithDbAction = actor({
369369
} catch (error) {
370370
c.log.warn({
371371
msg: "onSleep error",
372-
error: error instanceof Error ? error.message : String(error),
372+
error,
373373
});
374374
}
375375
},

rivetkit-typescript/packages/rivetkit/src/agent-os/actor/session.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,11 @@ export function subscribeToSession<TConnParams>(
140140
);
141141

142142
// Persist event to SQLite for sleep/wake recovery.
143-
persistSessionEvent(c, sessionId, event).catch((err) =>
143+
persistSessionEvent(c, sessionId, event).catch((error) =>
144144
c.log.error({
145145
msg: "agent-os failed to persist session event",
146146
sessionId,
147-
error: err,
147+
error,
148148
}),
149149
);
150150

rivetkit-typescript/packages/rivetkit/src/common/inline-websocket-adapter.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -161,28 +161,28 @@ export class InlineWebSocketAdapter {
161161
}
162162
}
163163

164-
#handleError(err: unknown): void {
165-
console.error("INLINE_WEBSOCKET_ADAPTER_ERROR", err);
164+
#handleError(error: unknown): void {
165+
console.error("INLINE_WEBSOCKET_ADAPTER_ERROR", error);
166166
logger().error({
167167
msg: "error in websocket",
168-
error: err,
169-
errorMessage: err instanceof Error ? err.message : String(err),
170-
stack: err instanceof Error ? err.stack : undefined,
168+
error,
169+
errorMessage: error instanceof Error ? error.message : String(error),
170+
stack: error instanceof Error ? error.stack : undefined,
171171
});
172172

173173
// Call handler.onError
174174
try {
175-
this.#handler.onError(err, this.#wsContext);
176-
} catch (handlerErr) {
175+
this.#handler.onError(error, this.#wsContext);
176+
} catch (error) {
177177
logger().error({
178178
msg: "error in onError handler",
179-
error: handlerErr,
179+
error,
180180
});
181181
}
182182

183183
// Fire error event to both sides
184-
this.#clientWs.triggerError(err);
185-
this.#actorWs.triggerError(err);
184+
this.#clientWs.triggerError(error);
185+
this.#actorWs.triggerError(error);
186186
}
187187

188188
#close(code: number, reason: string): void {
@@ -199,8 +199,8 @@ export class InlineWebSocketAdapter {
199199
{ code, reason, wasClean: true },
200200
this.#wsContext,
201201
);
202-
} catch (err) {
203-
logger().error({ msg: "error closing websocket", error: err });
202+
} catch (error) {
203+
logger().error({ msg: "error closing websocket", error });
204204
} finally {
205205
this.#readyState = 3; // CLOSED
206206

rivetkit-typescript/packages/rivetkit/src/common/log.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export function configureDefaultLogger(logLevel?: LogLevel) {
7676
messageKey: "msg",
7777
// Do not include pid/hostname in output
7878
base: {},
79+
errorKey: "error",
7980
// Keep the numeric level so the logfmt sink can match Pino's levels.
8081
formatters: {
8182
level(_label: string, number: number) {

rivetkit-typescript/packages/rivetkit/src/drivers/engine/actor-driver.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ export class EngineActorDriver implements ActorDriver {
284284
logger().debug({
285285
msg: "actor crash cleanup errored",
286286
actorId,
287-
err: stringifyError(err),
287+
error: stringifyError(err),
288288
});
289289
}
290290
}
@@ -1346,7 +1346,7 @@ export class EngineActorDriver implements ActorDriver {
13461346
logger().warn({
13471347
msg: "failed to rebind dynamic hibernatable runner websocket",
13481348
actorId,
1349-
err: stringifyError(result.reason),
1349+
error: stringifyError(result.reason),
13501350
});
13511351
}
13521352
}
@@ -1369,7 +1369,7 @@ export class EngineActorDriver implements ActorDriver {
13691369
logger().warn({
13701370
msg: "failed to rebind hibernatable connect socket",
13711371
actorId,
1372-
err: stringifyError(result.reason),
1372+
error: stringifyError(result.reason),
13731373
});
13741374
}
13751375
}
@@ -1629,7 +1629,7 @@ export class EngineActorDriver implements ActorDriver {
16291629
logger().warn({
16301630
msg: "failed to restore dynamic hibernating requests after actor start",
16311631
actorId,
1632-
err: stringifyError(error),
1632+
error: stringifyError(error),
16331633
});
16341634
}
16351635
} else if (isStaticActorDefinition(definition)) {
@@ -1696,7 +1696,7 @@ export class EngineActorDriver implements ActorDriver {
16961696
logger().debug({
16971697
msg: "failed to dispose dynamic runtime after actor start failure",
16981698
actorId,
1699-
err: stringifyError(disposeError),
1699+
error: stringifyError(disposeError),
17001700
});
17011701
}
17021702
this.#dynamicRuntimes.delete(actorId);
@@ -1719,7 +1719,7 @@ export class EngineActorDriver implements ActorDriver {
17191719
actorId,
17201720
name,
17211721
key,
1722-
err: stringifyError(error),
1722+
error: stringifyError(error),
17231723
});
17241724

17251725
try {
@@ -1728,7 +1728,7 @@ export class EngineActorDriver implements ActorDriver {
17281728
logger().debug({
17291729
msg: "failed to stop actor after start failure",
17301730
actorId,
1731-
err: stringifyError(stopError),
1731+
error: stringifyError(stopError),
17321732
});
17331733
}
17341734
}
@@ -1775,7 +1775,7 @@ export class EngineActorDriver implements ActorDriver {
17751775
logger().debug({
17761776
msg: "actor start failed during stop, cleaning up handler",
17771777
actorId,
1778-
err: stringifyError(err),
1778+
error: stringifyError(err),
17791779
});
17801780
}
17811781
}
@@ -1793,7 +1793,7 @@ export class EngineActorDriver implements ActorDriver {
17931793
} catch (err) {
17941794
logger().error({
17951795
msg: "error in onStop, proceeding with removing actor",
1796-
err: stringifyError(err),
1796+
error: stringifyError(err),
17971797
});
17981798
}
17991799
}
@@ -1978,8 +1978,8 @@ export class EngineActorDriver implements ActorDriver {
19781978
isHibernatable,
19791979
isRestoringHibernatable,
19801980
);
1981-
} catch (err) {
1982-
logger().error({ msg: "building websocket handlers errored", err });
1981+
} catch (error) {
1982+
logger().error({ msg: "building websocket handlers errored", error });
19831983
websocketRaw.close(1011, "ws.route_error");
19841984
return;
19851985
}

rivetkit-typescript/packages/rivetkit/src/registry/index.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -307,12 +307,12 @@ export class Registry<A extends RegistryActors> {
307307
.then(async ({ runtime, registry, serveConfig }) => {
308308
await runtime.serveRegistry(registry, serveConfig);
309309
})
310-
.catch((err) => {
310+
.catch((error) => {
311311
// Always-attached catch so the stored promise never leaves a
312312
// rejection unhandled. Downstream awaits (e.g. #runShutdown's
313313
// Promise.race) attach their own catches and still observe
314314
// resolution via the race.
315-
logger().warn({ err }, "runtime registry serve errored");
315+
logger().warn({ error }, "runtime registry serve errored");
316316
});
317317
// Install signal handlers once an envoy lifecycle has begun. Only
318318
// Mode A ever reaches here. Mode B (handler(request)) intentionally
@@ -374,8 +374,8 @@ export class Registry<A extends RegistryActors> {
374374
signal,
375375
config,
376376
configuredRegistryPromise,
377-
).catch((err) => {
378-
logger().warn({ err }, "shutdown error");
377+
).catch((error) => {
378+
logger().warn({ error }, "shutdown error");
379379
});
380380
}
381381

@@ -400,9 +400,9 @@ export class Registry<A extends RegistryActors> {
400400
const { runtime, registry } =
401401
await configuredRegistryPromise;
402402
await runtime.shutdownRegistry(registry);
403-
} catch (err) {
403+
} catch (error) {
404404
logger().warn(
405-
{ err },
405+
{ error },
406406
"runtime registry shutdown errored (mode A)",
407407
);
408408
}
@@ -418,7 +418,7 @@ export class Registry<A extends RegistryActors> {
418418
await runtime.shutdownRegistry(registry);
419419
} catch (err) {
420420
logger().warn(
421-
{ err },
421+
{ error: err },
422422
"runtime registry shutdown errored (mode B)",
423423
);
424424
}

rivetkit-typescript/packages/rivetkit/src/registry/native.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3496,6 +3496,10 @@ export function buildNativeFactory(
34963496
getNativeWorkflowInspector(ctx) !== undefined,
34973497
});
34983498
} catch (error) {
3499+
logger().error({
3500+
msg: "error replaying workflow history",
3501+
error,
3502+
});
34993503
return errorResponse(error);
35003504
}
35013505
}
@@ -3675,6 +3679,10 @@ export function buildNativeFactory(
36753679
);
36763680
return jsonResponse({ output });
36773681
} catch (error) {
3682+
logger().error({
3683+
msg: "Error handling inspector action request",
3684+
error,
3685+
});
36783686
return errorResponse(error);
36793687
}
36803688
}
@@ -3689,6 +3697,10 @@ export function buildNativeFactory(
36893697
{ status: 404 },
36903698
);
36913699
} catch (error) {
3700+
logger().error({
3701+
msg: "Error handling inspector request",
3702+
error,
3703+
});
36923704
return errorResponse(error);
36933705
} finally {
36943706
await actorCtx.dispose();

0 commit comments

Comments
 (0)