← Files RiversideARCHIVED FILE

skills/social-publishing/references/upload-status.md

1.93 KB · Oct 8, 2026 · 12:02 UTC

↓ Download file

See the change to this file →

# Checking a publish outcome

`social_upload_create` means accepted, not live. Read
`social_get_upload_status(uploadId)`; only `COMPLETED` proves live, never an
early `externalId`.

Branch on `terminal`: pending rendering/uploading and scheduled posts are
non-terminal. Completed is terminal. Failed is terminal except an expired
connection with `scheduledAt`, because reconnection can revive the post.

- `PENDING`: do not republish. Check once shortly after publishing, then only
  on user request. Cancellation needs `cancellable` from `social_get_upload` and the
  main management route; pending alone cannot establish eligibility.
- `SCHEDULED`: report `scheduledAt` and stop.
- `COMPLETED`: report success. This status tool has no URL; the full read
  `social_get_upload` can return `postUrl` via the main management route.
- Expired connection with schedule: reconnect, never republish, then re-read.
  Relay `reason`: future schedules resume automatically; past-due schedules
  revive only if the user accepts the web app's post-reconnect prompt.
- Expired connection without schedule: terminal, nothing posted. Reconnect
  before a new publish and follow returned `reason`.
- `UNKNOWN`/missing failure category: verify with platform or Riverside Support
  before republishing. Failed alone does not prove no post.
- Other failures: re-read status first. Use the main management/recovery route
  for eligible in-place updates with confirmation, or the web app's recovery.
  Never create a second upload to bypass an unresolved outcome.

Relay bounded Riverside-authored `reason`, not raw diagnostics. No tool can
unpublish. Status returns outcome/schedule and bounded failure fields, not clip/session
ids or a URL.
Unknown, cancelled, foreign/inaccessible uploads share an authorization error:
say unreadable, not nonexistent. Readability does not identify the publisher. Strip `_SHORTS` and compare platform case-insensitively when
correlating connected accounts.

SHA-256: abf28bc7d22877d02fee27c8e6e1087bd8cf4b4a640302bede582d84c8d7bee7