You hover over a Claude Artifact, click the download icon in the toolbar, and your browser either does nothing or drops a 0-byte placeholder into Downloads. Click again and you get the same result. This is almost never an Anthropic outage. In nearly every case the browser’s blob-URL pipeline was interrupted or blocked.
Fastest fix (solves most cases): wait until the artifact stops streaming (no spinner, title stable), then retry the download in an incognito window with extensions off. If that still fails, ask Claude to paste the content into the chat as a code block and copy it manually. Details and the rest of the decision tree are below.
Where the download button actually is (June 2026)
The toolbar moved. As of June 2026, the artifact controls live in the lower-right corner of the artifact window, not the upper-right. Hover over the open artifact to reveal three controls, per Anthropic’s help center:
- View code (
< >icon) — shows the raw source behind the rendered preview - Copy — copies the content to your clipboard
- Download — saves the artifact as a file whose extension matches its type (
.htmlfor a web page,.pyfor a Python script,.svgfor vector graphics,.mdfor a document)
If you do not see a download icon at all, first confirm artifacts are enabled: click your initials in the lower-left, then go to Settings → Capabilities and toggle Artifacts on. Artifacts are supported on Free, Pro, Max, Team, and Enterprise plans.
How Artifact download works under the hood
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 a hidden <a download> element. If the content is not finished, the URL is blocked, or serialization fails, you get either the “nothing happens” symptom or the “empty file” symptom. Each cause below maps to one broken step.
Which bucket are you in?
| Symptom you see | Most likely cause | Jump to |
|---|---|---|
| File saves but is 0 bytes or truncated | Clicked before stream finished | Cause 1 / Step 1 |
| Click does nothing, Network tab stays empty | Extension swallowed the blob: URL | Cause 2 / Step 2 |
RangeError or heap error in console | Artifact too large to serialize | Cause 3 / Step 6 |
| ”Downloaded” but file is nowhere | Illegal filename characters | Cause 4 |
| 401/403 in Network tab | Third-party cookies blocked | Cause 5 |
| Random wrong/old version | Multiple Claude tabs | Cause 6 |
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 and the title keeps changing. The download button stays clickable but captures whatever snapshot existed at that instant, which is often empty or truncated.
How to spot it: look for the spinner on the card or a “Generating…” state 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, Ghostery, and aggressive ad/script blockers treat blob: URLs as suspect and silently swallow them. This is the single most common cause of artifact problems after premature clicks, and ad blockers and privacy extensions are also the usual reason the preview pane itself fails to render. The smoking gun: nothing appears 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. A 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. The 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 “Prevent cross-site tracking” setting, block third-party cookies. That can make Claude’s download request fail with a 401/403 the UI never surfaces.
How to spot it: DevTools → Network, click download, look for any row returning 401 or 403.
6. Multiple Claude tabs open at once
Open 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 the large majority of cases.
Step 1: Wait until the artifact is truly finished
The most common fix is patience. Signals that it is safe to download:
- No spinner in the artifact toolbar
- Title text has stopped changing
- Claude has started its next reply in the main thread (the artifact is “sealed”)
For a code artifact, wait for Claude to post its summary (something like “I’ve created the artifact”) before clicking.
Step 2: Hard-refresh, then try incognito with extensions off
First do a hard refresh to clear a stale render: Cmd+Shift+R on macOS or Ctrl+Shift+R on Windows/Linux. If the download still fails, open a private/incognito window, log in, and repeat the flow. If it works there, return to your normal window and disable extensions one at a time:
Chrome: chrome://extensions/ → toggle off one by one
Edge: edge://extensions/ → toggle off one by one
Safari: Settings → Extensions → uncheck
Firefox: about:addons → Disable
Usual suspects: uBlock Origin, Ghostery, Privacy Badger, ClearURLs, Decentraleyes, and corporate MDM profiles. Once you find the culprit, allowlist claude.ai in it instead of leaving it off.
Step 3: Have Claude paste plain text instead
For huge artifacts or repeated failures, bypass the download button entirely. Send:
Please paste the full artifact contents directly into the chat
inside a fenced code block. Do not use an artifact.
Then use the Copy button on the code block and save it locally. This is the fastest path for content under roughly 50KB.
Step 4: Use View code → Copy, or Print as PDF
If only the download is broken but the preview renders fine, open View code in the artifact’s lower-right toolbar and use Copy there. To get a PDF of a rendered HTML or document artifact, click the caret next to Copy and choose Print as PDF (or open the artifact and press Cmd/Ctrl+P, then set the destination to “Save as PDF”). This sidesteps the blob pipeline completely.
Step 5: Open DevTools and capture the real error
Press F12 to open Console + Network, then re-click download and capture:
- Red console errors
- Network rows with a status other than 200 (watch for 401/403 and any
blob:attempt)
Paste that into the in-app feedback (thumbs-down → “Report”), and check status.anthropic.com for an incident at that timestamp.
Step 6: Try a different browser / device, or split the artifact
If Safari refuses, try Chrome. If desktop fails, 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, so regenerate.
For the oversize-artifact memory errors from Cause 3, have Claude break it up:
Split this artifact into 3 separate smaller artifacts,
each under 200 lines, named part1, part2, part3.
Download each part and concatenate locally. This has a far higher success rate than forcing one huge file through the blob pipeline.
How to confirm it’s fixed
- The browser shows a real filename and a non-zero size in the download bar.
- Open the file immediately. A code/HTML artifact should contain the full source you saw in View code; an image should render.
- Check the byte size is greater than 0 before you close the chat. If it is 0 bytes, you are still on Cause 1 or 2.
Prevention
- For important artifacts, do both Copy and Download so you never depend on a single channel.
- For long artifacts, ask Claude to split them up front to avoid single-blob memory spikes.
- Keep a
claude.aiallowlist entry in your blockers so you do not get bitten again. - Have Claude name files in
snake_caseorkebab-caseand ban special characters. - After download, open the file and verify the size is greater than 0 before closing the chat.
FAQ
Why is my downloaded artifact 0 bytes? You almost certainly clicked while Claude was still streaming, so the blob captured an empty snapshot. Wait for the spinner to disappear and the title to stop changing, then download again.
The download button is missing entirely. Where did it go? The controls are in the lower-right corner of the artifact window and only appear on hover. If they are still absent, enable artifacts under Settings → Capabilities → Artifacts, or just ask Claude to paste the content into the chat.
Which file type do I get when I download?
The extension matches the artifact type: .html for a web page or React app, .py / .js / .ts for code, .svg for vector graphics, .md for a text document. There is no single “always HTML” rule.
How do I save an artifact as PDF or DOCX? Use the caret next to Copy → Print as PDF, or open the rendered artifact and use the browser’s print dialog with “Save as PDF” as the destination. For DOCX, copy the content out and paste it into your editor.
Is this an Anthropic outage? Rarely. Check status.anthropic.com. If there is no incident at your timestamp, it is a local browser, extension, or memory issue, so work through Steps 1 to 6.
Related
- Claude file generation eats quota
- Claude beginner guide
- Claude prompt best practices
- Claude Projects
- Claude Mobile App Sync Broken
- Claude Team Billing Mismatch vs Seat Count
- Claude Artifact Renders as Blank Pane
- Claude File Upload Stuck on Processing
- Claude Projects Context Pollution Across Chats
- Claude Projects Instructions Ignored
- Claude Artifact Edit Loses Changes After Follow-up
- Claude Extended Thinking Toggle On but No Thinking Traces
- Claude Attachment Preview Not Rendering: Tile Without Thumbnail
- Claude Web Search Citations Return 404 or Wrong Page
- Claude Artifact React Component Fails Silently on Prop Errors
- Claude Computer Use Stuck in Action Loop on Same Button
- Claude Memory Is On But No Memories Show Up
- Claude Google Drive Connector Stuck in Re-Auth Loop
Tags: #Claude #Debug #Troubleshooting