Claude defaults to thumbnails for large videos instead of using multi-part uploads

Resolved 💬 1 comment Opened Jun 15, 2026 by sophie383 Closed Jun 15, 2026

What happened

When uploading videos to Notion via the file upload API, Claude sees files over 20MB and immediately falls back to extracting first-frame thumbnails with ffmpeg. It doesn't attempt multi-part uploads, even though the Notion API supports them and they work fine.

Expected behaviour

Claude should use Notion's multi-part upload API ("mode": "multi_part") for files over 20MB, splitting into ~10MB chunks. The workflow:

  1. POST /v1/file_uploads with "mode": "multi_part", "number_of_parts": N
  2. POST /v1/file_uploads/{id}/send with -F "part_number=N" for each chunk
  3. POST /v1/file_uploads/{id}/complete
  4. Reference as {"type": "video", "video": {"type": "file_upload", "file_upload": {"id": "..."}}}

This works for 25-64MB MP4s. The thumbnail fallback should only be used if multi-part upload genuinely fails, not as the default path.

Why it matters

The user gets static thumbnails instead of playable videos in their Notion pages. They then have to ask "why can't you upload the videos?" before Claude discovers it can.

Root cause

Claude's memory/training includes "Notion's single-part upload cap is 20MB" as a hard constraint and doesn't know about the multi-part alternative. Once told, it implements the multi-part flow correctly on the first attempt.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗