Skip to main content

Understand billing limits

How TaskJuice meters compute, storage, traffic, and forms, when overage kicks in, and how to recover from a state-storage freeze.

What this page is about

Every TaskJuice plan bundles a fixed amount of capacity across six metered dimensions. When you stay inside the included envelope, your bill is the headline plan price. When you go over, post-paid overage shows up on the next invoice. When you go far over on the metered dimensions that have caps, the platform throttles writes or pauses them entirely. Each meter's section below says what lifts its cap.

This page explains what each meter counts, how overage is charged, and what behavior to expect at each threshold. For the exact inclusion amounts and rates per plan, see Plans and pricing.

What each meter counts

TaskJuice tracks six meters per workspace:

  • Compute time. Wall-clock time your workflows spend executing inside the runtime. Counted in milliseconds, billed in hours. Cold start and queue wait before your workflow runs don't count.
  • Files storage. Bytes of large payloads, file uploads, and workflow artifacts stored on your behalf, summed across every file. Counted at write time against the workspace's current total (128 MB included on Free, 1 GB on Solo, 5 GB on Starter, 25 GB on Growth, 100 GB on Scale). This is your total stored, a separate limit from how large any single file can be — see the per-file size ceiling.
  • State storage. The table rows and agent memory your account keeps. It's a running total: saving adds to it, changing something adds or removes the difference, and deleting takes it away. It carries over from one billing period to the next. Run history, agent conversation history and quality-check results don't count; they're kept for your plan's retention period and then deleted. Table rows set to expire on a date don't count either.
  • Outbound bandwidth. Bytes your workspace sends out: the request bodies your workflows deliver to external services (file attachments included) plus file downloads from TaskJuice. Downloads count when the download link is issued. Pages served from custom-branded domains are protected by the same cap but do not count toward the meter today.
  • Form submissions. Each accepted form submission counts as one, regardless of payload size. The body size is enforced separately by the per-plan file ceiling.
  • Forms published. The number of forms currently in the published state. This is a hard cap with no overage; you cannot publish a thirty-first form on Growth.

The live counts for every meter are on the in-app usage dashboard at /settings/billing/usage.

How overage works

Overage is post-paid. Most meters add up over each billing period. Storage is a running total, billed on its highest point in the period. At period end, TaskJuice takes the overage on each meter, multiplies by the per-unit overage rate for your plan, and sends Stripe a single invoice that includes the base subscription plus per-meter overage line items.

Compute time is the one meter that emails you: the people who manage billing get an email at 80% and at 90% of the included hours. For every other meter, check its card on the usage dashboard.

You can shorten retention on individual workflows if you don't need 30 or 90 days of run history. Run history doesn't count toward state storage. You can't extend retention beyond the plan-tier ceiling, and TaskJuice never silently shortens retention to manage cost. The retention number you set is the contract.

What happens at each threshold

The cap behavior is different per meter because the economics are different per meter. On the Free plan, state storage is the one meter that stops new writes; on paid plans it's billed as overage like the others.

MeterAt 100% includedAt 110%At 200%At hard cap
ComputeOverage chargedOverage chargedOverage chargedPer-workflow circuit breaker may trip on runaways
Files storageOverage chargedOverage chargedSoft throttle on non-critical writes (429)New writes blocked at 10x included
State storageOverage chargedOverage chargedOverage chargedFree plan only: new table rows stop at 72 MB
Outbound bandwidthOverage chargedOverage chargedOverage chargedNew workflow runs and file downloads pause; custom-branded pages pause
Form submissionsOverage chargedOverage chargedSoft throttle (429 at ingress)429 at ingress at 2x included
Forms publishedHard cap; no overageAlready cappedAlready cappedAlready capped

A 429 response carries a Retry-After header. Critical paths bypass the throttle: audit-relevant writes, error logs, and the billing meters themselves always succeed so your records remain consistent.

Recover from a state-storage freeze

Only the Free plan freezes state storage. When a Free account keeps 72 MB of table rows and agent memory, new table rows can't be saved, and steps that add them return a STORAGE_STATE_FROZEN error. Everything already saved is kept, agents and workflows keep running, and reads keep working. Paid plans never freeze: anything above the included amount is billed as overage, and your spend cap is the safety net.

When the freeze lands, the State storage card on the usage dashboard shows Frozen and links to the storage-frozen page at /settings/billing/storage-frozen, which only the account owner can open. It lists the tables and agent memory using the most room. There are two ways to recover.

  1. Option A: delete what you don't need.

    Delete a table or an agent's memory from the storage-frozen page. Its room is freed within a few minutes, and new table rows can be saved again once you're under 72 MB.

  2. Option B: upgrade

    Paid plans include more state storage (Solo 0.25 GB, Starter 0.5 GB, Growth 5 GB, Scale 25 GB) and never freeze; anything above the included amount is billed as overage. New table rows can be saved within a few minutes of the plan change.

The freeze keeps a Free account inside what the Free plan covers, since Free has no overage. On a paid plan you pay for what you keep instead, so nothing freezes.

Predictability over magic

A few platforms manage their own storage cost by silently shortening tenant retention windows during load spikes. TaskJuice doesn't. The retention you configured on a workflow is the retention you get, all the way up to the plan-tier ceiling. If your state storage trends toward the freeze, watch the State storage meter on the usage dashboard; it shows how close you are before the freeze.

The pricing model is post-paid for the same reason: knowing what you'll owe at month-end is more important than capping spend in a way that drops events. Overage on the soft-cap meters is bounded by the hard caps documented above, so a runaway workflow can't produce a runaway bill.

Per-workflow knobs that clamp to plan ceilings

Several configurable values clamp server-side to the plan tier so a misconfigured workflow can't escape the envelope:

  • Polling interval floor. Free polls at most every 60 minutes; Solo every 15 minutes; Starter every 5 minutes; Growth every minute; Scale every 30 seconds. Setting a lower number in the trigger config is rejected at publish.
  • Active polling triggers. The number of polling trigger subscriptions that can be live at once, per account: 1 on Free, 3 on Solo, 10 on Starter, 50 on Growth, 250 on Scale. Publishing or enabling a poller past the cap is refused with a plan-limit error; pollers already running are never stopped by a downgrade.
  • Loop iterations. Free loops stop at 100 iterations; Solo at 500; Starter at 1,000; Growth at 10,000; Scale at 100,000.
  • Approval fanout. A single workflow run can spawn at most 2 (Free), 5 (Solo), 10 (Starter), 50 (Growth), or 250 (Scale) approval tasks. Arrays that resolve to a larger size are clamped with an audit log entry.
  • Webhook body size. Free accepts up to 256 KiB per request; Solo and Starter up to 1 MiB; Growth 4 MiB; Scale 6 MiB. Larger bodies are rejected at the edge with a 413.
  • Per-file size. The largest single file a workflow can store or move, and the largest file a form can accept, is 10 MB on Free, 100 MB on Solo, 250 MB on Starter, 1 GB on Growth, and 5 GB on Scale. This is distinct from the Files storage meter, which caps your total bytes stored across all files: a Scale workspace can hold up to 100 GB total made of files up to 5 GB each. A file over the ceiling is rejected before it is stored; on a form, the builder clamps each field's maximum to your plan's ceiling.

The publish-time validator names the field and the plan ceiling when it rejects a config, so the fix is local: shrink the value, or upgrade.

When a destination is stricter than your plan

Some external services impose their own file-size limits that are tighter than your plan's per-file ceiling. Where that happens, the destination wins: TaskJuice checks the file against the destination's limit before any bytes leave, so a transfer that would exceed it fails up front rather than sending a truncated file. The limits that are tighter than the top plan ceiling today:

DestinationPer-file limit it enforces
Gmail attachments~20 MB per message
Dropbox uploads150 MB per upload
Slack uploads~1 GB per file

A rejected transfer surfaces on the run's step detail with the size that was refused, the same way any other step error does.

What changes when you downgrade

Plan downgrades take effect at the start of the next billing period. The new (lower) ceilings apply from that moment. State storage carries over, because it's what you keep: on a smaller paid plan, anything above its included amount is billed as overage, and moving to Free with more than 72 MB kept stops new table rows until you delete enough.

Before downgrading, compare each meter on the usage dashboard with the destination plan's included amounts. To fit a smaller state-storage allowance, delete tables or agent memory you no longer need.

Workspaces per account

Account-tier caps limit how many workspaces you can run under one TaskJuice account: Free 1, Solo 1, Starter 3, Growth 10, Scale unlimited. The cap is enforced at workspace creation. Usage is metered per account, so extra workspaces never add capacity. An agency that signs its eleventh client moves to Scale; that's the design.

Separately from your plan's limit, an account can create up to 50 new workspaces an hour on every plan. The count resets at the top of each hour.

Was this helpful?