# AWS Bedrock File Size Limits: Document Constraints in Knowledge Bases and Converse API

AWS Bedrock Knowledge Bases enforces a 50 MB per-document limit for file ingestion, while the Bedrock Converse API caps inline document payloads at 4.5 MB per file. Direct uploads and automated synchronization pipelines fail when files exceed these quotas or when raw data payloads breach inference boundaries. Understanding ingestion pathways, chunking behavior, and external workspace architectures prevents pipeline failures across large document sets.

Source: https://fast.io/resources/aws-bedrock-file-size-limit/
Author: [Tom Langridge](https://fast.io/authors/tom-langridge/)
Last reviewed: 2026-10-12

## What Are the AWS Bedrock File Size Limits Across Knowledge Bases and APIs?

AWS Bedrock Knowledge Bases enforces a 50 MB file size limit on each document and data source file during ingestion, while the AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents. These boundaries represent hard technical constraints within Amazon Web Services, yet engineering teams regularly confuse foundational model context windows with file transport ceilings. A model like Anthropic Claude 3.5 Sonnet or Amazon Nova can process two hundred thousand tokens of text in active memory, but the transport mechanisms that feed documents into those models operate under far tighter file size restrictions.

When designing generative AI architectures on AWS, teams interact with documents through two distinct operational pathways: asynchronous data ingestion into Knowledge Bases for Retrieval-Augmented Generation (RAG), and synchronous document invocation through runtime inference APIs. Each pathway solves a different engineering problem and enforces its own strict payload quotas.

In Amazon Bedrock Knowledge Bases, data ingestion is designed to index persistent corpora stored in repositories like Amazon S3, Confluence, Microsoft SharePoint, Salesforce, or web crawlers. The 50 MB file size limit applies to each individual document and data source file during ingestion. If a single PDF, Word document, or spreadsheet in your S3 prefix exceeds the 50 MB file size limit on each document and data source file during ingestion, the ingestion job skips that specific file and logs an error in the job execution details.

In contrast, the Bedrock Converse API (and its streaming counterpart, ConverseStream) provides direct conversational inference with foundation models. Rather than querying a pre-indexed vector store, developers pass document bytes directly inside the request payload. Because this invocation happens synchronously over HTTPS, the AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents per message.

| Ingestion Pathway / Interface | Max Single Document Size | Document Quantity Limit | Supported Formats | Failure Behavior | Verified Status |
| --- | --- | --- | --- | --- | --- |
| Knowledge Base S3 Data Source | 50 MB | Unlimited files (10 TB total KB quota) | PDF, DOCX, CSV, XLSX, HTML, TXT, MD | File skipped; logged in failureReasons | Verified October 2026 |
| Knowledge Base Console Direct Upload | 50 MB | 10 documents per batch | PDF, DOCX, CSV, XLSX, HTML, TXT, MD | Console UI blocks submission of oversized files | Verified October 2026 |
| IngestKnowledgeBaseDocuments API | 50 MB | 25 documents per API call | PDF, DOCX, CSV, XLSX, HTML, TXT, MD | API returns ValidationException (400) | Verified October 2026 |
| Bedrock Converse API (Document Block) | 4.5 MB | 5 documents per message | PDF, CSV, DOCX, XLSX, HTML, TXT, MD | API returns ValidationException (400) | Verified October 2026 |
| Bedrock Converse API (Image Block) | 3.75 MB | 20 images per message | JPEG, PNG, GIF, WebP (max 8,000 x 8,000 px) | API returns ValidationException (400) | Verified October 2026 |

These limits are non-negotiable default service quotas. While some AWS quotas can be increased by submitting a service limit request through the AWS Service Quotas console, per-document payload ceilings for ingestion parsers and runtime endpoints reflect the architectural memory constraints of Bedrock's internal processing containers.

## How Knowledge Bases Ingest, Parse, and Chunk Source Documents

Understanding why AWS enforces a 50 MB file size limit on each document and data source file during ingestion requires examining the internal mechanics of the Bedrock Knowledge Base pipeline. When you trigger a data source synchronization, Bedrock does not simply deposit raw files into an embedding model. Instead, it executes a multi-stage data processing pipeline consisting of document extraction, text normalization, semantic chunking, and vector generation.

A common point of confusion is the operational difference between the source document size limit and the chunk size quota. The 50 MB file size limit applies to each individual document and data source file during ingestion before parsing begins. The chunk size quota, by contrast, dictates the maximum size of individual text segments after Bedrock splits the document for vectorization. Bedrock allows developers to configure fixed-size chunking (typically between three hundred and one thousand tokens), hierarchical chunking with parent-child relationships, or semantic chunking. A technical manual easily satisfies the 50 MB file size limit on each document and data source file during ingestion, and Bedrock will break that manual into thousands of distinct chunks based on your chosen chunking strategy.

The ingestion pipeline follows a strict execution flow:

1. Source Crawling and Validation: Bedrock connects to your storage repository (such as an S3 bucket prefix) and checks file metadata. If any object breaches the 50 MB file size limit on each document and data source file during ingestion, Bedrock flags the object, omits it from parsing, and records a failure event in the active IngestionJob.
2. Format-Specific Parsing: Supported formats including PDF, Microsoft Word (DOCX), Microsoft Excel (XLSX), CSV, HTML, Markdown, and plain text are processed by Bedrock's extraction engine. For standard text-based files, the parser extracts raw string tokens. For complex PDFs containing tables and images, Bedrock can use advanced parsing options, such as foundation model parsing or AWS Textract integration, to preserve layout hierarchy.
3. Chunking Strategy Application: The extracted text stream is divided into chunks according to your configuration. For instance, fixed-size chunking splits text into blocks with a configurable token overlap to prevent context fragmentation at chunk boundaries.
4. Vector Embedding: Each chunk is submitted to your selected embedding model, such as Amazon Titan Text Embeddings V2, Cohere Embed English, or Cohere Embed Multilingual.
5. Vector Store Synchronization: The generated vector embeddings, accompanied by chunk text and metadata, are written into your managed vector store, such as Amazon OpenSearch Serverless, Pinecone, Amazon Aurora PostgreSQL with pgvector, or MongoDB Atlas.

When a file exceeds the 50 MB file size limit on each document and data source file during ingestion, the ingestion job does not abort the entire sync. If you sync an S3 bucket containing hundreds of files and several exceed the threshold, Bedrock successfully indexes the compliant files. The oversized files are bypassed. However, in automated enterprise pipelines, silent file omissions can lead to degraded retrieval accuracy, as critical reference material is missing from the vector index without an immediate build failure.

## Why the Converse API Limits Documents to 4.5 MB and Five Attachments

The Bedrock Converse API provides a unified conversational interface across all supported foundation models, allowing developers to implement multi-turn dialogues with text, images, and document attachments. However, attaching documents directly to Converse API calls introduces a much tighter operational threshold where the AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents per message.

Unlike Knowledge Bases, which retrieve pre-indexed text chunks, the Converse API passes documents directly into the foundation model's active inference context. This enables immediate document question-answering without setting up vector databases or background synchronization pipelines. But direct document passing has technical constraints that developers must manage in application code.

In the Amazon Bedrock Runtime API, a document is passed inside a DocumentBlock structure. The schema requires specifying the document format, an identifier name, and a DocumentSource object. In SDK invocations (such as with the Python boto3 library), the DocumentSource accepts a raw byte array or base64-encoded string:

```json
{
  "role": "user",
  "content": [
    {
      "document": {
        "format": "pdf",
        "name": "QuarterlyFinancials",
        "source": {
          "bytes": "JVBERi0xLjQKJeLjz9MKMSAwIG9iai..."
        }
      }
    },
    {
      "text": "Analyze the revenue growth trends across all regional divisions in this report."
    }
  ]
}
```

Developers frequently encounter unexpected 400 ValidationException errors due to binary-to-text encoding overhead. When sending documents over HTTP JSON payloads, binary data must be base64-encoded. Base64 encoding expands raw binary data significantly, generating four output characters for every three input bytes. If your application reads a three-megabyte PDF from disk and encodes it into base64 for transmission in a JSON payload, the serialized string expands noticeably. If the receiving validation layer evaluates payload size against the serialized HTTP request, the call fails whenever the AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents.

Furthermore, the Converse API enforces structural rules that differ from traditional chat endpoints:

- Companion Text Requirement: Any message containing a document block must also include a text content block. You cannot submit a document in isolation; you must provide prompt instructions or context alongside the file.
- User Role Restriction: Document and image blocks can only be included in messages where the role is explicitly set to user. You cannot pass document blocks inside system prompts or assistant response turns.
- Model Page Boundaries: Individual foundation models enforce sub-limits within the document boundary. For example, Anthropic Claude models on Bedrock enforce a maximum page limit of one hundred pages per PDF document block. A document that spans beyond that page boundary will clear the byte size check but trigger a model-level validation error during inference.

## How to Store and Query Large Document Corpora Without Upload Ceilings

Enterprise document collections routinely exceed AWS Bedrock's 50 MB file size limit on each document and data source file during ingestion, as well as the Converse API payload threshold where the AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents. Comprehensive technical manuals, financial prospectuses, legal discovery productions, and architectural schematics frequently range into hundreds of megabytes or several gigabytes. Handling these files in production requires deliberate architectural decoupling.

Engineering teams typically evaluate three operational patterns to resolve document size bottlenecks:

Pattern 1: Client-Side Document Splitting. This approach uses local libraries (such as pypdf or pdfplumber) to split large documents into smaller files prior to S3 upload. For example, a heavy PDF is split into smaller segments that each sit safely below the 50 MB file size limit on each document and data source file during ingestion. While this bypasses the initial upload check, it introduces structural problems. Splitting a document arbitrarily across page boundaries can sever tables in half, split paragraphs across separate vector chunks, and destroy global document hierarchy. Furthermore, managing the lifecycle and metadata consistency of split fragments adds substantial operational complexity.

Pattern 2: Decoupled Extraction Pipelines with AWS Textract. Instead of pointing Bedrock Knowledge Bases directly at heavy raw PDFs, teams build an asynchronous extraction pipeline. A document uploaded to S3 triggers an AWS Lambda function that invokes Amazon Textract. Textract parses the text, extracts tables into structured markdown, and writes a clean, lightweight text file back to S3. A large scanned PDF containing dense bitmap images often yields a lightweight text file that easily satisfies the 50 MB file size limit on each document and data source file during ingestion. The drawback is cost and pipeline latency: Textract table analysis and OCR processing add measurable per-page costs and multi-minute processing delays.

Pattern 3: Persistent Intelligent Workspaces. Modern agent architectures decouple unstructured file storage and semantic retrieval from inference endpoints entirely. Rather than relying on managed cloud databases that enforce rigid document upload ceilings, teams store comprehensive document collections in [shared persistent workspaces](/product/workspaces/).

Platforms like Fastio provide organization-owned workspaces designed for human-agent collaboration. Unlike consumer cloud drives or specialized vector databases, Fastio workspaces accommodate large documents natively, supporting chunked uploads without arbitrary low-megabyte document ceilings.

| Workspace Tier | Included Storage | Workspaces | Maximum Upload Ceiling | Subscription Model |
| --- | --- | --- | --- | --- |
| Starter ($9.99/mo) | 250 GB | 5 workspaces | 25 GB per file | Monthly plans start with 14-day free trial |
| Business ($49.99/mo) | 5 TB | 50 workspaces | 50 GB per file | Monthly plans start with 14-day free trial |
| Enterprise ($199.99/mo) | 25 TB | 200 workspaces | 100 GB per file | Monthly plans start with 14-day free trial |

Monthly plans start with a 14-day free trial, which requires a credit card. Reviewing [Fastio pricing](/pricing/) helps teams match storage capacity to their active project requirements.

When Intelligence Mode is enabled on a workspace, files are automatically indexed for full-text and semantic search upon arrival. AI agents connect directly to workspace context using the Model Context Protocol (MCP) server over Streamable HTTP at `https://mcp.fast.io/mcp/tools` (for general clients) or `https://mcp.fast.io/mcp/code` (for coding agents). Setup instructions and connection guides are documented at `https://mcp.fast.io/docs`.

Instead of passing heavy document payloads into Bedrock, applications query the Fastio REST API to retrieve targeted excerpt passages backed by exact document citations, and pass only the relevant text context into Bedrock's Converse API:

```python
import httpx

workspace_id = "ws_corp_docs_987"
fastio_api_key = "fastio_token_example"
search_query = "indemnification liabilities in enterprise master service agreements"
search_url = f"https://api.fast.io/current/workspace/{workspace_id}/storage/search/"
headers = {"Authorization": f"Bearer {fastio_api_key}"}
params = {"search": search_query}

response = httpx.get(search_url, headers=headers, params=params, timeout=30.0)
response.raise_for_status()
search_data = response.json()

retrieved_contexts = []
for item in search_data.get("data", {}).get("results", [])[:3]:
    file_name = item.get("name")
    snippet = item.get("snippet", "")
    retrieved_contexts.append(f"Source [{file_name}]: " + snippet)

combined_context = "

".join(retrieved_contexts)

converse_payload = {
    "messages": [
        {
            "role": "user",
            "content": [
                {
                    "text": f"Context from corporate repository:
{combined_context}

Question: What are standard liability caps?"
                }
            ]
        }
    ]
}
```

For structured document extraction (such as extracting counterparties, renewal dates, and line items from invoices and contracts), teams configure [Metadata Views](/product/document-data-extraction/). Metadata Views turn unstructured documents into typed database schemas automatically, allowing agents to query structured values via MCP without re-extracting text across every model turn.

## Checklist for Diagnosing Ingestion Failures and Verifying Quotas

When operating AWS Bedrock Knowledge Bases at scale, production monitoring is critical to prevent silent data loss caused by document constraint violations. Because Bedrock skips oversized or corrupt files without failing the entire synchronization job, administrators must monitor ingestion job metrics programmatically.

Every synchronization execution creates an IngestionJob resource. You can monitor the status of an ingestion job using the AWS Management Console or the AWS Command Line Interface (CLI):

```bash
aws bedrock-agent get-ingestion-job \
  --knowledge-base-id "KB12345678" \
  --data-source-id "DS87654321" \
  --ingestion-job-id "JOB00000001"
```

The response payload includes a statistics block detailing the number of documents scanned, indexed, and failed, along with explicit diagnostic failure messages:

```json
{
  "ingestionJob": {
    "knowledgeBaseId": "KB12345678",
    "dataSourceId": "DS87654321",
    "ingestionJobId": "JOB00000001",
    "status": "COMPLETE",
    "failureReasons": [
      "Input file s3://company-docs-bucket/compliance/Audit_Report.pdf exceeds the maximum file size quota of 50 MB.",
      "Input file s3://company-docs-bucket/legal/Archive.zip has an unsupported file format."
    ]
  }
}
```

To maintain a reliable ingestion pipeline, implement this pre-flight verification checklist before initiating a Knowledge Base sync:

1. File Size Verification: Execute a scanning script across your S3 bucket prefix to ensure every individual document and data source file sits safely below the 50 MB file size limit on each document and data source file during ingestion. Quarantine any file meeting or exceeding this threshold for preprocessing.
2. Encoding and Character Standards: Ensure plain text, CSV, HTML, and Markdown files use standard UTF-8 encoding. Files containing invalid UTF-8 byte sequences will trigger parser extraction errors.
3. PDF Font and Text Validation: Confirm that PDF documents contain extractable text streams rather than pure bitmap scans. Scanned documents require enabling Bedrock advanced parsing with Textract or pre-processing with optical character recognition.
4. Companion Metadata Alignment: When using custom metadata attributes for vector filtering, verify that companion metadata files use the exact naming convention `<filename>.<extension>.metadata.json`. An improperly named metadata file will be ingested as an orphaned file rather than applied as attribute filters.
5. Converse Payload Safety Margins: When using the Converse API in application backends, remember that the AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents. Calculate base64 expansion in memory before dispatching requests, keeping raw binary files under three megabytes to guarantee that base64 serialization remains safely below the threshold.

## Frequently asked questions

### What is the file size limit for AWS Bedrock Knowledge Base?

AWS Bedrock Knowledge Bases enforces a 50 MB file size limit on each document and data source file during ingestion. This quota applies to all supported text-based formats, including PDF, DOCX, CSV, XLSX, HTML, Markdown, and TXT files stored in supported data sources like Amazon S3. Multimodal image files such as JPEG and PNG have a separate limit of 3.75 MB per file.

### Can you upload files larger than 50MB to Bedrock Knowledge Bases?

AWS Bedrock Knowledge Bases cannot directly ingest files exceeding the 50 MB file size limit on each document and data source file during ingestion. If an individual file in your data source exceeds that threshold, the ingestion job automatically skips that file and records a failure reason in the job execution details. To ingest content from larger files, you must split the document into smaller parts, extract the text into lightweight markdown files, or store the corpus in an external workspace.

### What is the maximum payload size for the Bedrock Converse API?

The AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents allowed per message. Because document bytes sent over HTTP JSON payloads must be base64-encoded, raw files on disk should be kept under approximately three megabytes to avoid exceeding the encoded boundary.

### What happens when a file exceeds 50 MB during Knowledge Base ingestion?

When a file exceeds the 50 MB file size limit on each document and data source file during ingestion, Bedrock skips that specific file and continues processing the remaining objects in the data source. The overall ingestion job completes with a partial success state, and the skipped file is documented in the failureReasons array returned by the GetIngestionJob API.

### What is the difference between source document size and chunk size in Bedrock?

The source document limit is the 50 MB file size limit on each document and data source file during ingestion before parsing. The chunk size quota is a separate configuration that determines how large individual text segments become after Bedrock splits the document for vector embeddings, typically configured between three hundred and one thousand tokens.

### Can you increase the 50 MB file size limit in AWS Bedrock?

The 50 MB file size limit on each document and data source file during ingestion is a default service limit that is non-adjustable through the AWS Service Quotas console. While total raw data storage per knowledge base defaults to 10 TB and can be scaled, individual document ingestion containers are strictly bounded.

### What file formats are supported for ingestion in AWS Bedrock Knowledge Bases?

Bedrock Knowledge Bases natively supports Portable Document Format (PDF), Microsoft Word (DOC, DOCX), Microsoft Excel (XLS, XLSX), comma-separated values (CSV), HyperText Markup Language (HTML), Markdown (MD), and plain text (TXT). Plain text formats must be UTF-8 encoded.

## Sources

- [Amazon Web Services: Amazon Bedrock User Guide](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html): AWS Bedrock Knowledge Bases enforces a 50 MB file size limit on each document and data source file during ingestion.
- [Amazon Web Services: Amazon Bedrock Runtime API Reference](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Message.html): The AWS Bedrock Converse API limits individual document attachments and request payload size to 4.5 MB with up to five documents.

## About Fast.io

Fast.io provides shared workspaces where people and AI agents work on the same files, with built-in semantic search and citation-backed chat over what they hold. Agents reach it through a remote MCP server, a REST API at https://api.fast.io/current/, and a command line client published on npm as @vividengine/fastio-cli. MCP setup is at https://mcp.fast.io/docs: Claude and most MCP clients connect to https://mcp.fast.io/mcp/tools, ChatGPT to https://mcp.fast.io/mcp/operations, and coding agents to https://mcp.fast.io/mcp/code.
