Skip to content
Back

Fulltext index creation fails due to InnoDB row size limit

  • 0
  • Databases
  • Web
  • Self Hosted
Alex Bourg
1 Jan, 2026, 01:15

I'm running a self-hosted Appwrite 1.8.1 instance and encountering an issue when creating fulltext indexes on a collection.

The Problem: Fulltext index creation fails with this error in appwrite-worker-databases logs:

TypeScript
SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large.
The maximum row size for the used table type, not counting BLOBs, is 8126.

MariaDB logs show:

TypeScript
InnoDB: Cannot add field `FTS_DOC_ID` in table because after adding it,
the row size is 8132 which is greater than maximum allowed size (8126 bytes)

Root Cause: My collection has ~100 string attributes. With UTF8MB4 encoding, each VARCHAR(n) uses up to n * 4 bytes. The total row size exceeds InnoDB's 8,126 byte limit, so MariaDB cannot add the hidden FTS_DOC_ID column required for fulltext indexes.

My Workaround: I manually converted several large VARCHAR columns to TEXT in MariaDB:

TypeScript
ALTER TABLE _14_database_2_collection_3
  MODIFY COLUMN psedescription TEXT,
  MODIFY COLUMN notes TEXT,
  -- ... etc

This reduced the row size below the limit and fulltext indexes now work. However:

  • Editing these attributes in the Appwrite console reverts them to VARCHAR
  • I need to avoid running migrations that might revert the changes

Questions for the team:

  1. Is there a recommended way to handle collections with many string attributes that exceed the row size limit?
  2. Would Appwrite consider using TEXT instead of VARCHAR for larger string attributes (e.g., size > 255)?
  3. Is there a safe way to persist these column type changes so they survive attribute edits and migrations?
  4. Any other recommendations for this use case?

Environment:

  • Appwrite 1.8.1 (self-hosted)
  • MariaDB 10.11
  • Collection has ~100 attributes, mostly strings

Thanks for any guidance!

TL;DR
The developer is facing fulltext index creation failure due to the InnoDB row size limit being exceeded. They've manually converted large VARCHAR columns to TEXT to work around the issue, but are seeking recommendations to handle collections with many string attributes that surpass the row size limit in Appwrite 1.8.1. They inquire about possible changes in Appwrite's handling of larger string attributes and ensuring column type changes persist through edits and migrations.
Reply

Reply to this thread by joining our Discord

Reply on Discord

Need support?

Join our Discord

Get community support by joining our Discord server.

Join Discord

Get premium support

Join Appwrite Pro and get email support from our team.

Learn more