# Limits

> This page is about FlutterFlow (the app builder you use by describing your app), not FlutterFlow Studio.

URL: https://docs.flutterflow.io/ffx/limits

The fixed limits on prompts, messages, attachments, first versions, threads, the backend, sign-in, app icons, connections, and phone builds.

This page lists the fixed limits in FlutterFlow, grouped by where you meet them.

## Prompts, messages, and attachments {#briefs-messages-and-attachments}

The following table lists the limits on prompts, messages, and attached files.

| Limit | Value |
| --- | --- |
| Prompt length | 12 to 8,000 characters |
| Message length | 32,000 characters. If you send another message while one of yours waits in the queue, FlutterFlow combines them into one message, and the limit applies to their combined length. |
| Files per prompt or message | Up to 6 files, 4 MB in total |
| Image files | PNG, JPEG, WebP, and GIF. FlutterFlow resizes larger images to 1,568 pixels on the long edge before it sends them, and sends GIF files up to 4 MB unchanged. |
| Document files | PDF, DOCX, XLSX, PPTX, ODT, ODS, ODP, RTF, TXT, LOG, RST, TEX, CSV, TSV, MD, JSON, JSONL, YAML, XML, and HTML |
| Font files | TTF and OTF |
| Unsupported files | Any other type, such as SVG, audio, video, and ZIP files |
| Files bundled with your app | Up to 30 MB across all bundled files. The agent can't bundle a file that would take the total over this limit. |
| Thread name length | 120 characters |

## First version {#first-version}

The following table lists the limits on the first version of an app.

| Limit | Value |
| --- | --- |
| Screens | Up to 8 |

## Threads and pushes {#threads-and-pushes}

The following table lists the limits on threads and pushes. Your plan doesn't limit how many threads the agent works in at once.

| Limit | Value |
| --- | --- |
| Pushes at the same time | 1 for each app |
| Threads in the thread list | The 50 most recently updated |
| Approvals for actions in connected services | Each approval request expires after 1 hour. Up to 10 requests can wait in one thread. |

## Backend {#backend}

The following table lists the limits on what each app's backend stores.

| Limit | Value |
| --- | --- |
| Tables | 100 for each app |
| Fields | 100 for each table |
| File folders | 20 for each app |
| Profile fields | 30 for each app |
| Claims | 32 for each app |
| Record size | 1,000,000 bytes for each record, counting every field at its maximum allowed size |
| File size | Set for each folder. Owners and developers can see it under **Largest file** in **Backend › Files › Rules**, and ask the agent to change it. |
| Secret names | Up to 64 characters: uppercase letters, numbers, and underscores, starting with a letter. Names can't start with a prefix that FlutterFlow reserves. |
| Secret values | 256 KB |

Your app's backend can have usage limits, such as on **Database reads** and **Database writes**. Check your current usage in **Backend › Usage**.

For more about backend usage, see [Backend usage](https://docs.flutterflow.io/ffx/backend-usage).

## Sign-in {#sign-in}

The following table lists the sign-in limits for the people who use your app. Owners and developers can see the first four limits in **Backend › People › Sign-in** under **Accounts and sessions**, and ask the agent to change them. The password reset link's lifetime is fixed. **Shortest password** appears only when email and password sign-in is turned on. For what each role can do, see [Team roles](https://docs.flutterflow.io/ffx/roles).

| Limit | Value |
| --- | --- |
| **Shortest password** | 6 to 100 characters |
| **Stay signed in** | 30 days between visits by default |
| **Sign in again after** | 365 days by default |
| **Devices at once** | Up to 25 by default |
| Password reset link | Works once and expires after 60 minutes |

## App icon {#app-icon}

The following table lists the limits in the **App icon** drawer.

| Limit | Value |
| --- | --- |
| Symbols drawn | 5 draws per app per day in Coordinated Universal Time (UTC). Failed draws don't count. |
| **Letters** | Up to 8 characters supported by the icon's fonts. When **Letters** is empty, the icon uses your app's initial if its name has one. |
| **Your own PNG** | A PNG file of exactly 1,024 by 1,024 pixels, up to 1 MB |

## Connections {#connections}

The following table lists the limits on connecting and calling external services.

| Limit | Value |
| --- | --- |
| Connecting a service | 20 attempts per person per hour. Each key check and service sign-in counts as one attempt. |
| Calls by your app or the agent through one service connected in **Project Settings › Connections** | 100 per minute for Stripe, 30 per minute for Discord, and 60 per minute for other services |

## Phone builds and store details {#phone-builds-and-store-details}

The following table lists the limits on phone builds and store listing details.

| Limit | Value |
| --- | --- |
| Android app (`.apk`) | 95 MB |
| Google Play file (`.aab`) | 190 MB |
| iPhone app (`.ipa`) | 190 MB |
| Download link for a ready build | Expires within 1 hour |
| **App ID** | Up to 155 characters in two or more dot-separated parts (such as `com.yourname.app`). Each part must start with a letter, contain only letters, numbers, and underscores, and avoid reserved words such as `class` or `new`. App IDs can't start with `com.example.`, and iPhone App IDs can't contain underscores. |
| **App name** | 30 characters |
| **Project name** | 100 characters |
