application/problem+json media type. Use the HTTP status for the error class. Use code for application logic.
Problem fields
A problem response always has these fields.
Some
429 responses also include reason and retry_at. Use reason to
distinguish a request-rate limit from a publishing-safety limit. Use retry_at
when it is present.
Each item in errors has a code and a detail. An item that refers to a
member of the request also has a pointer. The pointer value is a JSON
Pointer to that member.
Destination-specific Post errors can occur during Create Post or Publish Post.
They use publisher_validation_failed with HTTP status 422. For example, a
missing Instagram destination_options object points to /posts/0/destination_options. These errors
are not retryable until you correct the request.
x_character_limit_exceeded is the top-level problem code when an X body item
exceeds the selected Destination limit.
The detail includes the effective weighted-character limit.
Shorten the item and retry.
Refresh the Destination after the X account subscription changes.
What to log
Log the HTTP status,code, and request_id. Do not log API keys, provider credentials, or post content.
Retry guidance
Readretryable first. A false value tells you to correct the request before
you send it again. The table gives the typical action for each status.
CLI browser authorization
Request limits and publishing safety
OpenPMM applies separate controls to HTTP requests and provider work.
The
RateLimit and RateLimit-Policy headers describe HTTP request allowance.
They do not describe provider capacity or publishing units. Header items use
neutral identifiers such as requests, minute, and sustained, followed by
the numeric request limit and window. These identifiers are not provider names,
product policy names, or versions.
A publishing admission response rejects the complete new submission before
OpenPMM stores a Post. The reason is velocity, backlog, or
account-paused.
public_idempotency_outcome_unknown means that the earlier mutation can have
completed. The CLI uses exit 9 for this response. Inspect the affected Posts
or other resources before you create new work.
Provider publishing limits apply to one destination. A Post can fail with
provider_publishing_limit and automatic retry is disabled. Other destination
Posts continue. Use a confirmed manual retry later.