Skip to content

Commit 94c5a03

Browse files
committed
fix(webapp): log realtime run-change pub/sub failures at error level
Surface publish, subscribe, and unsubscribe failures in the realtime run-change pub/sub at error level with clearer static messages, instead of debug.
1 parent 7462bfe commit 94c5a03

1 file changed

Lines changed: 20 additions & 5 deletions

File tree

apps/webapp/app/services/realtime/runChangeNotifier.server.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,17 @@ export class RunChangeNotifier {
7878
const result = publisher.publish(channel, payload);
7979
if (typeof (result as Promise<number>)?.catch === "function") {
8080
(result as Promise<number>).catch((error) => {
81-
logger.debug("[runChangeNotifier] publish failed", { error, channel });
81+
logger.error("[runChangeNotifier] Failed to publish run-changed notification", {
82+
error,
83+
channel,
84+
});
8285
});
8386
}
8487
} catch (error) {
85-
logger.debug("[runChangeNotifier] publish threw", { error, channel });
88+
logger.error("[runChangeNotifier] Failed to publish run-changed notification", {
89+
error,
90+
channel,
91+
});
8692
}
8793
}
8894

@@ -125,7 +131,10 @@ export class RunChangeNotifier {
125131
listeners = new Set();
126132
this.#listeners.set(channel, listeners);
127133
subscriber.subscribe(channel).catch((error) => {
128-
logger.debug("[runChangeNotifier] subscribe failed", { error, channel });
134+
logger.error("[runChangeNotifier] Failed to subscribe to run-change channel", {
135+
error,
136+
channel,
137+
});
129138
});
130139
}
131140
listeners.add(resolveChanged);
@@ -161,15 +170,21 @@ export class RunChangeNotifier {
161170
// now unsubscribed in Redis but has live waiters. Re-subscribe so they
162171
// still receive messages (the long-poll backstop covers the gap).
163172
subscriber.subscribe(channel).catch((error) => {
164-
logger.debug("[runChangeNotifier] resubscribe failed", { error, channel });
173+
logger.error("[runChangeNotifier] Failed to re-subscribe to run-change channel", {
174+
error,
175+
channel,
176+
});
165177
});
166178
}
167179
})
168180
.catch((error) => {
169181
// UNSUBSCRIBE failed: the channel is likely still subscribed in Redis.
170182
// Keep the (empty) map entry so a future subscriber reuses it without a
171183
// duplicate SUBSCRIBE and #onMessage stays consistent with Redis state.
172-
logger.debug("[runChangeNotifier] unsubscribe failed", { error, channel });
184+
logger.error("[runChangeNotifier] Failed to unsubscribe from run-change channel", {
185+
error,
186+
channel,
187+
});
173188
});
174189
}
175190
};

0 commit comments

Comments
 (0)