Fixing Blogger Theme Save Failures: HTML Tags in b:skin CDATA Comments

2 min read · 562 words

If you've ever spent hours tearing your hair out because your Blogger theme updates won't apply to the live site despite the UI claiming success, this post is for you. Here is how I diagnosed and fixed a frustrating silent reject issue when saving Blogger themes.

The Problem: Blogger Theme Updates Silently Failing

I was cleaning up some CSS comments inside the <b:skin> CDATA block of my Blogger theme.xml. I added a descriptive comment to explain how pre/code blocks were styled, writing something like: /* Style pre / code blocks using <pre> and <code> tags */. After saving the changes, I noticed the live blog wasn't updating at all.

Symptoms

The Blogger theme editor UI happily popped up a "Save Successful" toast. However, when I fetched the live page source, it was still serving the old, unmodified theme. Even after waiting 5 minutes and testing via incognito mode on a different machine, the old theme persisted. Blogger's "Saved" confirmation is a lie—the UI reports success while the backend silently rejects the payload.

Environment

  • Platform: Blogger (Google Blogspot)
  • Target File: theme.xml
  • Location: CSS comments (/* ... */) inside the <b:skin><![CDATA[...]]> block

What Didn't Work

Before finding the root cause, I tried the usual suspects:

  • Manual XML Re-upload: Re-uploading the entire XML file. The upload succeeded in the UI but was ignored live.
  • Waiting out the CDN: Thought it might be a caching delay, but the live source remained unchanged.
  • Incognito Fetching: Tested on a completely separate network/machine to bypass local browser cache. Still served the stale theme.

The Root Cause & Resolution

While I can't inspect Blogger's proprietary backend, the behavior points to a parser issue. It seems Blogger's SkinVariables parser attempts to parse text inside CDATA CSS comments. When it encountered the <pre> and <code> strings, it mistook them for actual HTML elements, threw an unhandled InvalidVariableException, and aborted the write operation silently.

The fix was simple: strip all raw HTML tokens (angle brackets) from the CSS comments. Once I replaced the bracketed tags with plain text (e.g., changing <pre> to just pre), the theme saved and updated instantly.

Code Comparison

Here is the problematic comment versus the fixed version:

<!-- Before (Triggered silent reject) -->
/* Style pre / code blocks using <pre> and <code> tags */

<!-- After (Saved successfully) -->
/* Style pre / code blocks */

Verification

Immediately after uploading the fixed XML, the live page source size updated from 286,391 bytes to 294,194 bytes. I also verified that the SESS140 5 sentinel successfully reached the live environment. Status: Fixed.

Takeaway

If your Blogger theme updates are silently failing to apply, audit your <b:skin> CDATA block immediately. Look for any CSS comments containing HTML-like tags (e.g., <pre>, <code>, <div>). Strip out the angle brackets, re-upload, and your changes should go live instantly.

Category Coverage Notice

This article follows our label-specific editorial criteria. Details:

ToolSignal Pro Editorial

ToolSignal Pro는 AI·IT·소프트웨어 트렌드를 다루는 종합 IT 인사이트 매거진입니다.

이전 글 다음 글