You have done this
Something breaks in production. Conversions stopped reporting, or a tag is firing on the wrong pages, or a campaign launched this morning and the tracking is not there. It needs fixing now.
You open the container and every workspace is occupied. One belongs to a developer who is halfway through a consent rework. One belongs to an agency staging next quarter's setup. One has been open since March and nobody remembers what is in it. Standard containers cap you at three concurrent workspaces, and all three are somebody's in-flight work that you cannot publish.
So the fix goes into Default. It is right there, it always exists, and you cannot delete it even if you wanted to. You make the change, you preview it, it works, you publish. Twenty minutes, incident closed, back to what you were doing.
What nobody in that room clocked is that you did not publish a fix. You published a workspace.
GTM publishes the workspace, not the change
This is the mechanic and it is worth stating flatly, because a surprising number of experienced people have the wrong model of it.
When you hit Publish, every pending change in that workspace goes live together. There is no per-change selection. The unit of release is the workspace.
Open any workspace and look at its changes list. It is not a summary, it is the manifest of what publishing will ship: every tag added, edited or deleted, every trigger, every variable, every folder move. If you edited one tag, there is one item. If four people have touched the workspace since it was last published, there are however many items they left behind.
In your hotfix, your change was one of those items. The others came along.
Why Default is the worst possible place for this
Every workspace has this property. Default has it and three others that compound it.
- It always exists. Other workspaces get created for a purpose and disappear when that purpose is done. Default never disappears, so nothing in it ever ages out.
- It cannot be deleted. The usual cleanup mechanism, abandon the workspace and start fresh, is unavailable. The only way to empty Default is to publish it or to revert changes one at a time.
- It is where things land by accident. Anyone who opens the container without deliberately switching workspaces is in Default. Someone experimenting, someone half-configuring a tag they will finish next week, someone testing a variable, all of it accumulates in the same place.
Put those together and Default becomes a sediment layer. A tag someone started building for a campaign that got cancelled. A trigger with a placeholder condition. A test variable named after whoever was debugging that day. None of it is malicious and none of it is even careless in isolation. Every item was left there by a reasonable person who meant to come back.
Then an incident happens, and the one workspace that is always available becomes the release vehicle for everything sitting in it.
Why careful teams still walk into this
Two reasons, and neither is carelessness.
The mental model is wrong in a specific, understandable way. Workspaces look like branches. They have that shape: you make changes in isolation, you can see conflicts, you merge. So people reason about them like branches, which means assuming one workspace holds one unit of work and gets cleaned up on merge. In practice a GTM workspace behaves much more like a long-lived shared staging environment. It persists, multiple people write to it, and it does not empty itself. A branch that four people commit to and nobody ever merges is not a branch, and that is what most Default workspaces are.
The workspace cap bites hardest at the worst moment. Three workspaces is plenty on a normal day. It is never the constraint when things are calm. It becomes the constraint exactly when something urgent needs to ship, which is also when nobody is going to stop and read a changes list. The design of the limit and the psychology of an incident line up to push the risky publish into the moment with the least scrutiny.
The check to run before your next publish
Do this now, while nothing is on fire. It takes a few minutes and it is much less interesting than doing it during an incident.
- Open the Default workspace and open its changes list. Read every single item. Not the count, the items.
- For each one, answer: do I know why this is here and is it ready to be live? Anything you cannot answer yes to is something that ships on the next publish of that workspace.
- Deal with what you find. Finish it, revert it, or move it somewhere it belongs. Leaving it and remembering is not an option, because the whole failure mode is that nobody remembers.
- Then look at the other workspaces and check how old they are. A workspace that has been open for weeks is not just clutter. It is one of the three slots, and its being occupied is the reason the next hotfix will have nowhere else to go.
Most teams doing this for the first time find something in Default that surprises them. That is the normal outcome, not a sign of a badly run container.
The operational fixes
Cleaning Default once is worth doing. Keeping it clean needs a few conventions, none of which require any tooling.
- Treat Default as read-only. It is a convention rather than a permission, so it has to be stated out loud and repeated. Nobody builds in Default. Ever. If you are in it and you are about to change something, create a workspace first.
- Keep one workspace deliberately empty as the incident lane. This is the fix that actually removes the pressure. Name it something obvious, keep it empty, and treat occupying it as a thing that requires a reason. When production breaks, there is a clean slot waiting and the hotfix ships alone.
- Put stale workspaces on a cadence. Once a month, look at every open workspace. Publish it, merge it, or abandon it. A workspace nobody can explain is one somebody should abandon.
- Make "read the pending changes list" a required step in publishing. Not a suggestion in a doc. A step, with a name, that someone has to do. This is the one control that catches everything else when the conventions slip.
- If the cap keeps biting, price the upgrade. 360 removes the workspace limit. Whether that is worth it depends on your team size and release volume, but if you are hitting three workspaces regularly, the cap is not a minor annoyance, it is the thing routing urgent changes through your messiest workspace.
The safety net, and what it does not catch
Publishing creates a version, and versions can be restored. So a bad publish is recoverable, and that is genuinely reassuring.
It is reassuring right up to the point where you notice that rollback requires noticing. A half-built tag that quietly shipped alongside your hotfix does not throw an error. Nothing turns red. Analytics keeps reporting, the site keeps working, and the only symptom might be data that looks slightly off in a report somebody reads next month, or a marketing tag firing on pages it was never meant to see. Some of these are visible only if you go looking, which is the same problem described in 5 Signs Your Conversion Tracking Is Broken.
Version history protects you from mistakes you detect. It does nothing about the ones that just sit there. Rollback is not a substitute for reading the list.
The workspace is the unit of release
That is the whole thing. Not the change, the workspace. Every pending item in it goes live at the same moment, and the workspace that is always available is also the one that quietly collects everything nobody finished.
So before the next publish, know what is in yours. And if you are in the middle of any wider container work, the GTM to Google tag migration checklist and the GA4 audit checklist are both good moments to do the cleanup, since you are already in there reading everything.
Not sure what is pending in your containers? Book a GTM or Data Audit. We inventory what is actually sitting in your workspaces and put a release process around publishing.