Subscriptions - #16
Conversation
Define OSS and cloud billing modes with provider-backed catalogs, subscriptions, checkout, plan changes, webhooks, reconciliation, usage reservations, fair-use controls, domain verification, and billing operations tooling. Enforce organization plan limits across REST, MCP, and workers, update the Organizations billing UI and account messaging, and document pricing, errors, provisioning, and acceptable-use policies.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 62d342d09d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| void billing | ||
| .runWebhookInboxBatch({ workerId: `billing-${process.pid}` }) | ||
| .catch(() => undefined); | ||
| } catch { |
There was a problem hiding this comment.
Return a retryable status for webhook persistence failures
When billing.ingestWebhook fails for a transient reason after signature verification—such as a database outage or a failure while writing the durable inbox row—this catch returns 400 webhook_signature_invalid. Dodo will treat that as a permanent rejection and will not retry the event, so a first subscription activation can be missed and remain unprojected until an unrelated recovery path finds it. Distinguish invalid-signature errors from storage/processing failures and return a 5xx for the latter.
Useful? React with 👍 / 👎.
No description provided.