DevOps · K8s · Volleyball · Travel  •  DevOps · K8s · Volleyball · Travel  •  DevOps · K8s · Volleyball · Travel
Explore NY Stream

[SOLVED] Fix for WLW + Blogger error: 400 Bad Request

— ny_wk

[SOLVED] Fix for WLW + Blogger error: 400 Bad Request

The Blogger 400 Bad Request error when publishing from Windows Live Writer almost always fires the moment a post containing images is uploaded, and the most common root cause is a corrupted Windows registry entry for image MIME types. Restoring the Content Type values for .jpg, .png, and .gif fixes it instantly, but there are several other modern causes worth ruling out too.

Below you will find what the error actually means, why a desktop blog editor trips it, a registry repair you can apply in under a minute, and the additional account, API, and image-hosting issues that produce the same symptom on current versions of Blogger.

What the 400 Bad Request error looks like

When the failure hits, the editor stops mid-publish and surfaces a dialog similar to Error 400: Bad Request or An error occurred while publishing the post: The remote server returned an error: (400) Bad Request. Text-only posts frequently go up without complaint, which is the biggest clue: the problem is tied to the images, not the words.

A 400 status code is an HTTP response meaning the server rejected the request because it was malformed. The desktop editor sent the post to Blogger, but something in the payload (most often an image attachment with a missing or invalid content type) did not match what the server expected, so Blogger refused it outright.

First, know which editor you are running

Windows Live Writer (WLW) is discontinued. Microsoft stopped developing it years ago, it is no longer offered for download, and it has known incompatibilities with modern operating systems and updated blog APIs. If you are still on WLW, the single most effective fix is to migrate.

Open Live Writer (OLW) is the modern, free, open-source successor maintained by the .NET Foundation. It is built from the same code Microsoft released to the community, supports current Windows versions, and is the recommended replacement. Most fixes in this guide apply to both editors, but you should treat moving to OLW as step zero whenever possible.

  • Still on WLW: the registry fix below remains valid, but plan to switch.
  • On OLW: apply the same registry repair, then re-add your Blogger account fresh.

Root cause #1: missing image Content Type in the registry

Windows stores a Content Type value for common file extensions under the HKEY_LOCAL_MACHINE\SOFTWARE\Classes hive. The editor reads these values to label each image with the correct MIME type (for example image/jpeg) before uploading. When those values go missing, the editor sends an image with a blank or wrong content type, and Blogger answers with 400 Bad Request.

These values usually disappear because a poorly written uninstaller from some unrelated application stripped them while cleaning up its own file associations. The damage is silent, you never get a warning, and it breaks every image-bearing publish until restored.

Fix: restore the image Content Type values

The cleanest repair is a small .reg file that rewrites the four image MIME types at once. No reboot and no restart of the editor are required after applying it.

  1. Open Notepad (search for it in the Start menu).
  2. Paste the following exactly:
    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpg]
    "Content Type"="image/jpeg"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpeg]
    "Content Type"="image/jpeg"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.png]
    "Content Type"="image/png"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.gif]
    "Content Type"="image/gif"
  3. Choose File > Save As, set Save as type to All Files, and name it RepairImageContentTypes.reg.
  4. Double-click the saved .reg file and confirm the User Account Control and Registry Editor prompts.
  5. Try publishing your image post again. It should go through immediately.

Because this writes to HKEY_LOCAL_MACHINE, you must be signed in as an administrator. If the merge is denied, right-click the file and the system will request elevation.

Verify the values manually (optional)

If you prefer to check before editing, confirm each key by hand:

  1. Press Win + R, type regedit, and press Enter.
  2. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpg.
  3. Look for a string value named Content Type set to image/jpeg. If it is absent, that confirms the corruption.
  4. Repeat for .jpeg, .png, and .gif.

Editing the registry directly carries risk. Back up the registry first via File > Export in regedit so you can roll back if anything goes wrong.

ExtensionRegistry keyCorrect Content Type
.jpgHKLM\SOFTWARE\Classes\.jpgimage/jpeg
.jpegHKLM\SOFTWARE\Classes\.jpegimage/jpeg
.pngHKLM\SOFTWARE\Classes\.pngimage/png
.gifHKLM\SOFTWARE\Classes\.gifimage/gif

Root cause #2: outdated GData API and image-hosting changes

The registry fix solves the classic case, but a 400 from a desktop editor can also be caused by changes on Blogger's side that older software was never updated to handle. These are worth knowing because they explain why WLW in particular fails where a freshly configured OLW may succeed.

  • Legacy GData vs. the current API. Windows Live Writer was built against Blogger's old GData (Atom) API. Google has retired or changed several legacy endpoints, so a request that WLW considers well-formed can now be rejected as malformed. Open Live Writer targets newer interfaces and is far less likely to hit this.
  • Picasa Web Albums shutdown. Blogger historically stored uploaded images in Picasa Web Albums, which Google shut down. Image uploads now route through Google Photos / Blogger's own storage. Old editors that still try to talk to the deprecated photo backend can fail at the image-upload step with a 400.
  • Account and blog settings. A blog that has reached its image storage limit, an account requiring re-authentication, or a permissions change can all cause the publish to be rejected.

Fix: re-add the Blogger account in your editor

Stale stored credentials and cached endpoint settings are a frequent culprit after the registry is clean. Removing and re-adding the blog forces the editor to re-discover the current API and re-authenticate.

  1. Open your editor and go to Blogs > About this blog or Options > Accounts.
  2. Select the Blogger account and choose Remove.
  3. Choose Add blog account, pick Blogger, and sign in again with your Google credentials.
  4. Complete any Google consent and two-step verification prompts.
  5. Let the editor download the blog's settings and theme, then republish.

Root cause #3: the post payload itself

Occasionally the rejected request is malformed for reasons unrelated to the registry or the API. Walk through these quick checks before assuming a deeper problem:

  • One bad image. A single image with a genuinely corrupt header or an unusual format (such as a .bmp or a renamed file whose real type does not match its extension) can poison the whole upload. Remove images one at a time to isolate it.
  • Oversized images. Very large dimensions or file sizes can trip server limits. Resize before inserting.
  • Unsupported characters or labels. Extremely long titles, broken HTML pasted from another source, or invalid label/tag characters can produce a 400. Try publishing a stripped-down draft to confirm.
  • Connectivity and proxy. A corporate proxy or aggressive antivirus that inspects HTTPS can rewrite the request body and corrupt it. Test on a different network.

Step-by-step troubleshooting order

Work through these in sequence and stop as soon as publishing succeeds:

  1. Confirm it is image-related by publishing a short text-only post. If that works, the issue is the image pipeline.
  2. Apply the registry repair (RepairImageContentTypes.reg) to restore the four MIME types. This resolves the majority of cases.
  3. Migrate to Open Live Writer if you are still on the discontinued Windows Live Writer.
  4. Remove and re-add the Blogger account to refresh credentials and API endpoints.
  5. Isolate a bad image by removing pictures one at a time and republishing.
  6. Test on another network to rule out proxy or antivirus interference.
  7. Fall back to the Blogger web editor to publish urgently while you finish diagnosing.

Common pitfalls to avoid

  • Editing the wrong hive. The values live under HKEY_LOCAL_MACHINE, not HKEY_CURRENT_USER. Putting them in the wrong place will not fix the upload.
  • Saving the .reg file as .txt. If Notepad appends .txt, double-clicking does nothing useful. Ensure the name ends in .reg with All Files selected.
  • Skipping elevation. Writing to HKLM requires administrator rights; an ordinary merge attempt will be silently blocked.
  • Assuming WLW will keep working. Because it is discontinued and tied to legacy APIs, even a perfect registry will not protect you from future Blogger-side changes. Switch to OLW.
  • Not backing up the registry. Always export before manual edits so a mistake is reversible.

Verifying the fix worked

After applying the repair, confirm success rather than assuming it:

  1. Create a new draft and insert at least one .jpg and one .png image.
  2. Publish to a private or unlisted test post.
  3. Confirm the editor reports success with no 400 dialog.
  4. Open the live post in a browser and verify the images render, not broken-link icons.
  5. Right-click an image and check its URL points to Google's current image storage, confirming the upload completed end to end.

If images publish cleanly and display correctly, the pipeline is healthy. If the 400 persists only on image posts after every step, the safest path is to compose in Open Live Writer or directly in the Blogger web dashboard, both of which use current, supported upload paths.

Modern alternatives to consider

If you are repeatedly fighting desktop-editor errors, it may be time to modernize your workflow:

  • Open Live Writer — the maintained successor, free and offline-friendly, ideal if you like a desktop editor.
  • Blogger's built-in web editor — always current, no registry dependencies, handles image hosting natively.
  • Composing in Google Docs and pasting into Blogger, which keeps formatting reasonably clean.
  • Migrating the blog itself to a platform with active tooling if Blogger no longer fits your needs.

Key Takeaways

  • The 400 error on image posts usually means Windows lost the registry Content Type values for .jpg, .png, and .gif.
  • A one-minute RepairImageContentTypes.reg merge restores those MIME types and fixes most cases without a reboot.
  • Windows Live Writer is discontinued; move to Open Live Writer, which targets current Blogger APIs.
  • Legacy GData endpoints and the Picasa Web Albums shutdown are real, modern reasons old editors fail at the image-upload step.
  • If problems persist, re-add your Blogger account, isolate a bad image, or publish from the Blogger web editor.

Frequently Asked Questions

Why does my text post publish but image posts fail with 400?

Because the failure is in the image-upload step, not the post body. Missing registry Content Type values mean each image is sent with no valid MIME type, so Blogger rejects the request while plain text sails through. Restore the four registry values to fix it.

Is Windows Live Writer still safe to use in 2026?

It still runs, but it is discontinued, unsupported, and built on Blogger's legacy GData API, so it is increasingly fragile. Open Live Writer is the free, maintained replacement built from the same code and is the recommended choice.

Will the registry edit harm my computer?

The provided .reg file only sets four standard image MIME types that should already exist, so it is low risk. As with any registry change, export a backup first via File > Export in regedit so you can undo it.

What replaced Picasa Web Albums for Blogger image hosting?

Picasa Web Albums was shut down, and Blogger image uploads now route through Google's current photo storage and Blogger's own backend. Editors that still try to reach the old Picasa endpoint can fail, which is another reason to use up-to-date software.

For more hands-on tech walkthroughs and local New York footage, subscribe to @explorenystream on YouTube.