Claude Artifact Download Fails / Empty File

Download button returns nothing or a 0-byte file — typically render state or browser blocker.

You click the download icon in the upper-right of a Claude Artifact card, and your browser either does nothing at all or drops a 0-byte placeholder file into Downloads. Click it again — same thing. This is rarely a Claude bug; it is almost always the browser’s blob-URL pipeline being interrupted or blocked.

Here’s how Artifact download actually works: Claude holds the generated content in front-end React state. Clicking download calls URL.createObjectURL() to mint a temporary blob URL, then fires a synthetic click on an <a download> element. Any one of those steps can break, producing either the “nothing happens” or the “empty file” symptom.

Common causes

Ordered by hit rate, highest first.

1. You clicked before the artifact finished generating

While Claude is streaming, the artifact card shows a spinner in the upper-right. The download button stays clickable but returns whatever snapshot existed at that moment — often empty or truncated.

How to spot it: Look for the spinner on the artifact card or the “Generating…” badge next to the title. Wait until the card goes static and the title stops changing.

2. A browser extension is killing the blob URL

uBlock Origin, Privacy Badger, Brave Shields, and aggressive ad blockers treat blob: URLs as suspect and silently swallow them. The smoking gun: nothing shows up in DevTools → Network when you click download.

How to spot it: Open DevTools → Console and look for Blocked a frame... or Refused to display 'blob:...'. Or just disable every extension and retry.

3. Huge canvas / HTML artifact runs out of memory

If the artifact is a large React app or holds tens of MB of inline image data, serializing it into a blob can fail — especially in Safari and on mobile browsers.

How to spot it: DevTools → Console shows RangeError: Maximum call stack size exceeded or Allocation failed - JavaScript heap out of memory.

4. Filename contains characters the OS rejects

If the artifact title contains /, \, :, ?, <, >, |, *, or ", Windows and macOS refuse to save the file. The symptom is “it looked like it downloaded, but I can’t find it.”

How to spot it: Ask Claude to rename the artifact to plain alphanumerics, then download again.

5. Incognito or third-party cookies are blocked

Some corporate networks and Safari’s default settings block third-party cookies, which causes Claude’s download auth token to fail with a 401 that the UI never surfaces.

How to spot it: DevTools → Network, filter by download, look for 401/403 responses.

6. Multiple Claude tabs open at once

Multiple tabs share IndexedDB. A stale tab can overwrite the current tab’s artifact reference, so download grabs the wrong version (or nothing).

How to spot it: Close every other Claude tab, refresh, regenerate, then download.

Shortest path to fix

Ordered by ROI. The first three solve 80% of cases.

Step 1: Wait until the artifact is truly finished

The most common fix is patience. Signals it is safe to download:

  • No spinner in the card’s upper-right
  • Title text has stopped changing
  • Claude has started its next reply in the main thread (artifact is “sealed”)

If it’s a code artifact, wait for Claude to say something like “I’ve created the artifact” before clicking.

Step 2: Try incognito or disable extensions

Open a private/incognito window, log in, and repeat the flow. If download works there, return to your normal window and disable extensions one at a time:

Chrome: chrome://extensions/ → toggle off one by one
Safari: Settings → Extensions → uncheck
Firefox: about:addons → Disable

Usual suspects: uBlock Origin, Ghostery, ClearURLs, Decentraleyes, corporate MDM profiles.

Step 3: Have Claude dump plain text instead

For huge artifacts or repeated failures, bypass the download button entirely:

prompt: Please paste the artifact contents directly into the chat
       inside a ``` code block. Do not use an artifact.

Then use the “Copy” button on the top-right of the code block and save manually. This is the fastest path for content under ~50KB.

Step 4: Open DevTools and capture the real error

Hit F12 → Console + Network. Re-click download. Capture:

  • Red console errors
  • Network rows with status ≠ 200
  • Any attempted blob: URL

Paste that into the Anthropic feedback form, or check status.anthropic.com for incidents at that timestamp.

Step 5: Try a different browser / device

Safari refusing? Try Chrome. Desktop failing? Try the mobile web (not the app). If only one combination fails, the bug is browser-specific; if all of them fail, the artifact itself is broken — regenerate.

Step 6: Ask Claude to split it into smaller pieces

For oversize-artifact memory errors:

prompt: Split this artifact into 3 separate smaller artifacts,
       each under 200 lines, named part1, part2, part3.

Download each part and concatenate locally. Much higher success rate than forcing one huge file.

Prevention

  • For important artifacts, do both “copy” and “download” — don’t trust a single channel
  • For long artifacts, ask Claude to split up front; avoid single-blob memory spikes
  • Keep a Claude-allowlist for your blockers so you don’t get bitten next time
  • Have Claude name files in snake_case or kebab-case; ban special characters
  • After download, immediately open the file and verify size > 0 before closing the chat

Tags: #Claude #Debug #Troubleshooting