Skip to main content
POST
Retry a failed publish

Authorizations

apiKey
string
query
required

apiKey MUST be supplied within the request body instead of query

Path Parameters

projectId
string<uuid>
required

POST /v2/api/projects/:projectId/workspaces/:workspaceId/versions/:version/publish/retry Parameter

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
workspaceId
string<uuid>
required

POST /v2/api/projects/:projectId/workspaces/:workspaceId/versions/:version/publish/retry Parameter

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
version
integer
required

POST /v2/api/projects/:projectId/workspaces/:workspaceId/versions/:version/publish/retry Parameter

Required range: 1 <= x <= 9007199254740991

Body

application/json

POST /v2/api/projects/:projectId/workspaces/:workspaceId/versions/:version/publish/retry Request body

apiKey
string

Upsolve API key, generated under Account → Developer settings in the Upsolve Hub. Keys are user-scoped: pass organizationId alongside the key to select which org to act on.

Minimum string length: 1
Example:

"up_embed_************"

organizationId
string<uuid>

Your Upsolve organization's UUID — the org that owns the API key and project. This is NOT a project organization: do not pass a value registered via /projects/register-organization, and do not pass an externalId (only projectOrganizationId accepts those). Omit it when using an org-bound API key — the org is read from the key and any value sent here is ignored. Required only for user-scoped API keys (created under Account → Developer settings) and for the Supabase JWT path, where the org is ambiguous and membership is verified against it.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Example:

"123e4567-e89b-12d3-a456-426614174000"

bypassChecks
boolean

Publish WITHOUT running CI: the test cases and the row-level security check are skipped, not overridden. Refused with CI_NOT_ENFORCED when CI is off for this workspace, since there would be nothing to skip. Owner or admin only. Always audited: who, when, and what was failing at the time is recorded on the version. Deprecated for organizations using environments: there a publish runs no checks and this is ignored; skip tests on a deployment instead.

publishWithoutCi
boolean

Required to publish a workspace whose CI is switched off: confirms the caller knows no test cases are replayed and no row-level security is executed. Refused with CI_DISABLED_UNCONFIRMED when omitted, and with CI_ALREADY_ENABLED when CI is on for this workspace. Always audited on the version. Choosing between turning CI on and publishing unverified is the user's decision, not the caller's. Deprecated for organizations using environments: there a publish runs no checks and this is ignored; tests run when a version is deployed.

Response

POST /v2/api/projects/:projectId/workspaces/:workspaceId/versions/:version/publish/retry Positive response

status
string
required
Allowed value: "success"
data
object
required