paperclipai/paperclip · error · ToolGatewayHttpError

session_revoked

session_revoked

Error message

Tool gateway session is expired or invalid

What it means

getActiveSession could not load a session row for the presented token. If the token embeds a session id, a lookup of that candidate is attempted purely to record a session_invalid auth failure for auditing before the 401 is thrown; the input at fault is the bearer/session token, which is unknown, malformed, or already deleted.

Solutions

  1. Re-establish the tool gateway session (re-authenticate); the session token expired or is invalid.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at server/src/services/tool-gateway.ts:1300 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-09-18). Data as JSON: /api/errors/31f34c5fa1bd0570. Report an issue: GitHub.

Appendix: source

Thrown at server/src/services/tool-gateway.ts:1820

        const [candidate] = await db
          .select()
          .from(toolGatewaySessions)
          .where(eq(toolGatewaySessions.id, sessionId))
          .limit(1);
        if (candidate) {
          await writeSessionAuthFailure(candidate, "session_invalid");
        }
      }
      throw new ToolGatewayHttpError(
        401,
        "Tool gateway session is expired or invalid",
        "session_invalid",
      );
    }

    if (row.revokedAt) {
      await writeSessionAuthFailure(row, "session_revoked");
      throw new ToolGatewayHttpError(
        401,
        "Tool gateway session is expired or invalid",
        "session_revoked",
      );
    }

    if (row.expiresAt.getTime() <= Date.now()) {
      await writeSessionAuthFailure(row, "session_expired");
      throw new ToolGatewayHttpError(
        401,
        "Tool gateway session is expired or invalid",
        "session_expired",
      );
    }

    await assertSessionRunIsActive(row);

    const now = new Date();

View on GitHub (pinned to 3f1d897a7c)