Publish an OtaKit release
publish_releasePublish a reviewed OtaKit bundle to an exact release lane safely: require expected current release and an idempotency key, and report manifest_sync_pending rather than false success.
Instructions
Publish a reviewed bundle to an exact lane. Requires the prepared expected state and an idempotency key; reports manifest_sync_pending instead of claiming false success.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | No | OtaKit app ID. Optional on a local connection whose project configures one; required otherwise. | |
| channel | Yes | Named channel, or null for the base channel | |
| bundleId | Yes | OtaKit bundle ID | |
| autoRevert | No | Enable rollback-share based automatic revert for this release | |
| forceImmediate | No | Make devices apply and reload on their next check | |
| idempotencyKey | Yes | Stable key reused only when retrying this exact mutation | |
| replaceRollout | No | Revert the lane's active rollout and publish this bundle in its place | |
| rolloutPercent | No | Share of devices (1-100, default 100) that receive this release; below 100 starts a gradual rollout on a lane that already has a release | |
| autoRevertMinSample | No | With autoRevert: completed trials (applied plus rolled back) needed before the share is trusted (10-100000, default 50) | |
| autoRevertRatePercent | No | With autoRevert: share of completed update trials that rolled back, over 24 hours, that triggers the revert (1-95, default 20) | |
| compatibilityDecision | No | When the bundle's native dependencies differ from the lane's current release: block (default) refuses; proceed publishes anyway, only after confirming no store build is needed; skip does not compare | |
| expectedCurrentReleaseId | Yes | Release ID shown by prepare, or null when the lane had no release |