Data source limits

How file count, file size, storage, and connection limits work across uploads, Google Drive, Notion, HubSpot, Confluence, Jira, and GitHub.

9 min read

Data source limits

Every plan has limits on how much content you can keep in CoAgentor. There are four kinds of limits, and they work independently — hitting one doesn't affect the others.

This article explains all four, what happens when you hit them, and how to free up space.

See your current usage →


The four kinds of limits

| Limit | What it caps | Scope | |---|---|---| | File count | How many files of each source type you can have | Per source type | | File size | How large a single file can be | Per file, all sources | | Storage | Total bytes across all your data sources | All sources combined | | Connections | How many separate accounts you can connect for each integration | Per integration |

Each is enforced separately. You could have plenty of file count budget left but still hit the storage cap if your files are large, or vice versa.


File count limits

This is the most important one to understand: file count is per source type, not global.

A free user with a 3-file count limit gets 3 files for direct upload, and 3 files for Google Drive, and 3 files for Notion. That's 9 files across the three sources, not 3 shared between them.

Some sources have their own override that replaces the default count:

| Source | Free | Solo | Pro | |---|---|---|---| | Direct upload | 3 | 10 | unlimited | | Google Drive | 3 | 10 | unlimited | | Notion | 3 | 10 | unlimited | | GitHub | 10 | 50 | unlimited | | HubSpot (records + bulk files) | 50 | 500 | unlimited | | Confluence pages | 25 | 250 | unlimited | | Jira (issues + attachments) | 50 | 500 | unlimited |

HubSpot and Jira are special — their caps include everything that source produces, not just the obvious records. See Special cases below.

When you hit a file count limit, CoAgentor shows: "File limit reached" with a link to upgrade.


File size limit

A single file can't exceed your per-file ceiling, regardless of source.

| Plan | Per-file limit | |---|---| | Free | 10 MB | | Solo | 50 MB | | Pro | 200 MB |

This applies to direct uploads, files picked from Google Drive, and Jira attachments. Files from sources that generate text content automatically (HubSpot records, Confluence pages, Jira issues, Notion pages) don't hit this limit because they're always small.

When you try to upload a file that's too large, CoAgentor shows: "File exceeds the X MB limit on your plan."


Storage limit

Storage is the only limit that's global across all sources. Every byte of every file — uploaded, picked from Drive, synced from Notion, formatted from HubSpot, extracted from Confluence, attached to a Jira issue — counts toward the same total.

| Plan | Storage | |---|---| | Free | 25 MB | | Solo | 500 MB | | Pro | 10 GB |

When you hit the storage limit, CoAgentor shows: "Storage limit reached. Upgrade to add more files."

For sync-based sources (HubSpot, Confluence, Jira), if you're already at the storage cap when a sync runs, the entire sync is skipped until you free up space.


Connection limits

You can connect multiple accounts for each integration — for example, two Google Drive accounts (work + personal) or two HubSpot portals. The connection limit caps how many separate accounts you can connect per integration.

| Plan | Connections per integration | |---|---| | Free | 1 | | Solo | 2 | | Pro | unlimited |

A free user can connect one Drive account and one Notion workspace and one HubSpot portal — not "one connection total."


What happens when you hit a limit

The behavior depends on which source you're using.

Direct upload, Google Drive, Notion picker

You get an immediate error. Files that fit get uploaded; files that don't are rejected.

  • Direct upload — single file at a time. If it fails, nothing was added.
  • Google Drive — multiple files at once. Files that fit are added, files that don't appear in an "errors" list with the reason. Already-synced files don't count against the cap, so you can re-pick them safely.
  • Notion — multiple items at once. Items already synced are skipped. Failed items can be re-queued for free (they don't count against your cap on retry). New items are added in the order you picked them, up to your remaining budget.

HubSpot, Confluence, Jira (background syncs)

These run on a 6-hour schedule. The sync worker enforces the cap during each run:

  • HubSpot — fetches records in priority order: contacts first, then companies, then deals. Each object type also produces one "bulk file" containing all its records joined together. Bulk files count toward your HubSpot cap (they're 1 row each), so the worker reserves slots for them upfront. If your cap is 50 and all three object types are enabled, you get 47 individual records (50 - 3 bulk files) split across contacts → companies → deals in priority order.
  • Confluence — fetches pages from all spaces you have access to, up to your page cap. If you have more pages than your cap allows, the worker stops at the limit and the rest aren't synced.
  • Jira — fetches issues first up to your cap, then sees how many slots are left for attachments. Attachments share the cap with issues — if you have 30 issues and your cap is 50, you get 20 attachment slots.

When a background sync hits a limit, you'll see a notification in your dashboard. Existing synced content stays — only new content is blocked.


How to free up space

If you've hit a limit, you have three options:

1. Delete content you don't need. Any deleted file (direct upload, Drive, Notion, etc.) immediately frees its slot in the file count cap and its bytes in the storage cap.

2. Disconnect a connector you're not using. Disconnecting removes the connection but leaves the synced files in place. To free space, delete the files first, then disconnect.

3. Upgrade your plan →. Higher tiers have larger caps in every dimension.

For background syncs that run automatically, you can also adjust your sync filters to fetch less:

  • HubSpot — disable object types you don't need, or add property filters to narrow the records returned.
  • Confluence — there's no per-space filter today; the worker syncs everything you have access to. To reduce volume, revoke access to spaces you don't need from the Confluence side.
  • Jira — narrow your JQL filter in the connection's sync settings.

Special cases

HubSpot bulk files count toward your cap

Every enabled HubSpot object type (contacts, companies, deals) produces one "bulk file" containing all records of that type joined into a single document. These bulk files give your agent broad context for retrieval, and they count as one file row each toward your HubSpot cap.

Example: a Solo user with maxHubspotRecords: 500 syncing all three object types gets up to 497 individual records (500 - 3 bulk files). This is by design — bulk files duplicate content that's already in per-record files, but they retrieve differently and are useful for "what's the overall state of our pipeline" questions.

Jira issues and attachments share the same cap

Unlike most sources, Jira's maxJiraIssues cap covers both issues and attachments combined. If your cap is 50 and you have 30 issues, you get 20 attachment slots. New attachments are only added if there's room left after issues are synced.

Notion file sizes aren't known until processing

When you sync a Notion page, CoAgentor doesn't know how large the extracted text will be until it actually fetches the content. The storage cap is checked, but only as a hard zero — if you're already at your storage limit, no new Notion items will sync. Otherwise the sync proceeds and the storage meter updates after extraction.

This means it's possible to slightly exceed your storage cap on one Notion sync. The next sync after the meter catches up will reject any new items.

Failed files don't count

Files in the "Failed" state — from extraction errors, expired tokens, or temporary issues — don't count against your file count or storage limits. You can retry them safely without burning budget.

Plan downgrades take a sync cycle to converge

If you downgrade from Pro to Solo and now have more files than your new cap allows, existing files stay in place. Background sync workers will gradually shrink your data on subsequent runs:

  • Direct upload, Google Drive, Notion — existing files stay. You can't add new ones until you delete enough to fit under the new cap.
  • HubSpot, Confluence — the next sync fetches fewer records and deletes the ones that no longer fit. Convergence happens within one sync cycle.
  • Jira — issues converge on the next sync, but attachments only get pruned if their parent issue drops out of your JQL filter. If you have more attachments than your new cap allows and no issues are dropping, you'll need to manually narrow your JQL to bring the count down.

Troubleshooting

"File limit reached" — You've hit the file count cap for the source you're trying to add to. Delete files from that source, or upgrade your plan.

"File exceeds the X MB limit" — A single file is over your per-file ceiling. Split it into smaller documents or upgrade your plan.

"Storage limit reached" — Your global storage is full. Delete content from any source to free space.

"Could not initialise storage" or "Connection limit reached" — You've hit your connections-per-integration cap. Disconnect an existing account first, or upgrade your plan.

A background sync stopped working — Check your dashboard for a "limit hit" notification. The most common cause is hitting either your storage cap or the source's file count cap. Free up space and the next sync (within 6 hours) will resume.


Related articles

Still have questions?

Our team typically responds within one business day.

Contact us →