paperclipai/paperclip · error · ToolGatewayHttpError

action_already_resolved

action_already_resolved

Error message

Tool action request has already been resolved

What it means

Optimistic lock in the approve path: the status update ...where status=pending matched zero rows, so the action request was already resolved (approved/declined/expired) by someone else. The 409 tells the caller the request has already been resolved; re-read it to see the outcome.

Source

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

      await tx.update(toolActionRequests).set({
        status: "failed",
        resolvedAt: now,
        updatedAt: now,
      }).where(and(
        eq(toolActionRequests.id, input.actionRequestId),
        eq(toolActionRequests.status, "executing"),
        eq(toolActionRequests.updatedAt, input.claimUpdatedAt),
      ));
      return true;
    });
    if (!settled) return { reasonCode, message, settled: false };
    await reflectToolActionInteractionLifecycle({
      actionRequestId: input.actionRequestId,
      status: "failed",
      errorCode: reasonCode,
      errorMessage: message,
    });
    return { reasonCode, message, settled: true };
  }

  async function expireApprovedActionForManagedArgumentDrift(input: {
    actionRequestId: string;
    invocationId: string;
    toolName: string;
    ownsExecutingClaim?: boolean;
  }) {
    const error = new ToolGatewayHttpError(
      409,
      "Approved tool action managed arguments changed after review; request a new approval",
      "approved_tool_managed_arguments_changed",
      { actionRequestId: input.actionRequestId, invocationId: input.invocationId, tool: input.toolName },
    );
    const now = new Date();
    await options.beforeManagedArgumentDriftExpiry?.();
    const [expired] = await db
      .update(toolActionRequests)

View on GitHub (pinned to 01ad858492)

Solutions

  1. The request was already resolved. Do not resolve it twice; check its current status.
Defensive patterns

Strategy: validation

When it happens

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

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18). Data as JSON: /api/errors/89b694939b3bbfe5. Report an issue: GitHub.