stablyai/orca · error · Error

Mac release build workflow ${completedRun.html_url ?? comple

Error message

Mac release build workflow ${completedRun.html_url ?? completedRun.id} concluded ${completedRun.conclusion ?? 'without a conclusion'}.

What it means

Thrown by runReleaseMacBuildWorkflow when a dispatched mac release build workflow run reaches status 'completed' but its conclusion is anything other than 'success' (e.g. failure, cancelled, skipped, or null). The html_url/id and conclusion are included so the operator can jump straight to the failed run.

Source

Thrown at config/scripts/run-release-mac-build-workflow.mjs:54

  const workflowRun =
    readWorkflowRunFromDispatchResult(dispatchResult) ??
    (await findDispatchedReleaseMacBuildRun(api, options, {
      dispatchStartedAtMs,
      now,
      sleep
    }))

  console.log(
    `Waiting for mac release build workflow run ${workflowRun.id}: ${workflowRun.html_url}`
  )

  const completedRun = await waitForReleaseMacBuildRun(api, workflowRun.id, options, {
    now,
    sleep
  })

  if (completedRun.conclusion !== 'success') {
    throw new Error(
      `Mac release build workflow ${completedRun.html_url ?? completedRun.id} concluded ${
        completedRun.conclusion ?? 'without a conclusion'
      }.`
    )
  }

  console.log(`Mac release build workflow succeeded: ${completedRun.html_url}`)
  return completedRun
}

export async function dispatchReleaseMacBuildWorkflow(api, options) {
  const body = {
    inputs: {
      release_run_id: options.releaseRunId,
      tag: options.tag
    },
    ref: options.ref
  }

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Open completedRun.html_url from the message and read the failed job logs.
  2. Confirm required mac-build secrets (signing cert, notarization credentials, GITHUB_TOKEN) are present in the repo/environment.
  3. Re-trigger by re-running the release workflow after fixing the root cause.
  4. If cancelled intentionally, treat as expected rather than retrying blindly.

Example fix

// before
const completedRun = await waitForReleaseMacBuildRun(api, workflowRun.id, options)
// after
const completedRun = await waitForReleaseMacBuildRun(api, workflowRun.id, options)
if (completedRun.conclusion !== 'success') {
  console.error(`Inspect failures: ${completedRun.html_url}`)
  process.exitCode = 1
  return completedRun
}
Defensive patterns

Strategy: try-catch

Validate before calling

if (run.status === 'completed' && run.conclusion !== 'success') {
  // surface url early instead of throwing blindly
  console.error(`Mac build failed: ${run.html_url} (${run.conclusion})`)
}

Type guard

function isSuccessfulRun(run) {
  return run?.status === 'completed' && run?.conclusion === 'success'
}

Try / catch

try {
  await runReleaseMacBuildWorkflow(options)
} catch (err) {
  if (/Mac release build workflow .* concluded/.test(err.message)) {
    // extract the html_url from the message and fetch job logs for triage
    process.exitCode = 1
    return
  }
  throw err
}

Prevention

When it happens

Trigger: waitForReleaseMacBuildRun returns a run whose status === 'completed' and conclusion !== 'success'. The mac build job inside the release workflow failed, was cancelled, or has no conclusion.

Common situations: Code-signing/notarization failure, missing macOS secrets (APPLE_*), runner unavailable/withdrawn, manual cancellation, upstream release artifact missing, workflow YAML error.

Related errors


AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12). Data as JSON: /api/errors/728179b7a07f3e0b. Report an issue: GitHub.