ruvnet/ruflo · error

[GUPP] Session timeout detected - possible crash

Error message

[GUPP] Session timeout detected - possible crash

What it means

Crash heuristic in GuppAdapter.checkForCrash(): the GUPP session's lastActiveAt is older than sessionTimeout, so the adapter infers the remote process crashed or hung. Recovery metadata is updated and a reconnect/recovery cycle follows.

Source

Thrown at v3/plugins/gastown-bridge/src/gupp/adapter.ts:539

  private stopCrashDetection(): void {
    if (this.crashCheckTimer) {
      clearInterval(this.crashCheckTimer);
      this.crashCheckTimer = null;
    }
  }

  private async checkForCrash(): Promise<void> {
    if (!this.state.session?.active) {
      return;
    }

    const now = Date.now();
    const lastActive = this.state.session.lastActiveAt.getTime();
    const elapsed = now - lastActive;

    if (elapsed > this.config.sessionTimeout) {
      // Session appears to have crashed
      console.warn('[GUPP] Session timeout detected - possible crash');

      // Update recovery metadata
      this.state = {
        ...this.state,
        recovery: {
          ...this.state.recovery,
          lastCrash: new Date(),
          crashCount: (this.state.recovery?.crashCount ?? 0) + 1,
          autoRecoverEnabled: this.state.recovery?.autoRecoverEnabled ?? true,
        },
        updatedAt: new Date(),
      };

      await this.persistState(this.state);
    }

    // Touch session to indicate we're still alive
    this.state = touchSession(this.state);

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Check the gupp session process for crashes or hangs; inspect its logs around the timeout.
  2. Increase the session timeout if legitimate operations exceed it.
  3. Ensure heartbeat/keepalive from the session is functioning so idle-but-alive sessions are not flagged.
Defensive patterns

Strategy: retry

When it happens

Trigger: GUPP session produces no activity past the session timeout window; interpreted as a possible crashed or wedged remote process, prompting cleanup/reconnect logic.

Common situations: See trigger scenarios.

Understand the failure class


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/3fcfc88b612a6f38. Report an issue: GitHub.