Skip to main content

Subscription Not Found

subscription_not_found404

Not Found · Affects all endpoints

No active subscription exists for this account. The account is on the Sandbox tier.

What this means

A request tried to look up, modify, or cancel a subscription, and we couldn't find an active subscription record for the account. This usually means the account is on the free Sandbox tier (which has no formal subscription object) — but it also fires when a previously-active subscription was cancelled and the cycle has ended.

When you'll see this

  • A dashboard tried to load subscription details for a Sandbox-tier account.
  • A cancel/upgrade flow ran against an account whose subscription was already cancelled and expired.
  • A reactivation flow was attempted but no cancelled subscription exists to reactivate.
  • A reconciliation script is checking subscription state for an account that never paid for one.
Learn more about how this works

Asterwise represents free-tier (Sandbox) accounts without an explicit subscription row — they're "no subscription" rather than "Sandbox subscription." This keeps the billing layer cleanly separated: the absence of a subscription is itself a meaningful state, not a special-case row. Paid subscriptions create explicit records; cancelling them transitions to "cancelled" (still queryable for grace period and reactivation), and after expiry they become unfindable.

The most common gotcha: this error is often correct behavior. If your code is asking "what's this account's subscription" and the account is on Sandbox, this is the right answer — not an error to fix.

Example response

{
"success": false,
"error": "subscription_not_found",
"message": "No active plan found.",
"details": [],
"retry_after": null,
"doc_url": "https://docs.asterwise.com/reference/errors/subscription_not_found",
"request_id": "req_01HXYZABCDEFGH",
"timestamp": "2026-05-25T12:34:56Z"
}
NEW TO APIS?
Quick fix
  1. If you expected the account to have an active subscription, sign in at asterwise.com/dashboard and check the billing section.
  2. If the account is on Sandbox and you wanted a paid plan, subscribe through the dashboard.
  3. If you cancelled and want to reactivate, you'll need to subscribe fresh — accounts past the cancellation grace period can't be reactivated.
PRODUCTION ENGINEER
Recovery pattern

Treat this as a meaningful "no subscription" state, not always an error.

Python:

Production handler

import httpx

def get_subscription_state(base_url, headers):
response = httpx.get(
f"{base_url}/v1/account/subscription",
headers=headers,
timeout=10,
)
if response.status_code == 404:
body = response.json()
if body.get("error") == "subscription_not_found":
return {"plan": "sandbox", "active": False}
response.raise_for_status()
return response.json()

Avoid this error by

  • Always check current subscription state before showing "Cancel" or "Upgrade" buttons. The right CTA for a Sandbox account is "Subscribe," not "Cancel."
  • In multi-account tooling, store each account's plan locally so you don't hit this error every time you render a dashboard.
  • Treat subscription_not_found and "Sandbox tier" as the same state in your UI. They mean the same thing functionally.
  • After cancellation, allow grace-period reactivation but don't promise it past the cycle end. Past that, the user must subscribe again.