This guide helps you debug common Google Tag Manager (GTM) client-side tag errors, using the insights from Code-Cube.io Tag Monitor.
What will you do?
- Run general checks to understand the context of an error
- Fix common errors per tag type: outdated templates, Custom HTML tags, and Google Ads, Microsoft Ads, Meta, and LinkedIn tags
⏰ Estimated time: 15 - 30 minutes
🔧 Requirements: Access to your GTM client-side container and the Code-Cube.io portal
Tip: Start with the Tag Debug Assistant in Tag Monitor. For each broken tag it shows a severity level, the plausible root cause, and potential fixes, which often points you straight to the right section below. See Tag Debug Assistant.
- Step 1 – Initial checks
- 1.1 Version and timing
- 1.2 Tag status
- 1.3 Reproduce the error
- 1.4 Dependencies and configuration
- Step 2 – Fix common errors per tag type
- Outdated tag templates
- Outdated variable templates
- Custom HTML tags
- Google Ads conversion tags
- Microsoft Ads conversion tags
- Meta (Facebook) conversion tags
- LinkedIn Insight tags
- Help us improve this guide
- Related pages
Step 1 – Initial checks
Before looking at specific error types, run these checks to understand the context of the problem.
1.1 Version and timing
- GTM container version: older GTM versions may still be cached after you publish a fix, so errors can still show up even though they're resolved in the newest version
- Error timeline: find out when the error first appeared. Did it coincide with a GTM publish?
- Page scope: check which pages have the error
1.2 Tag status
- Paused tags: check whether the failing tag is paused in GTM. Remove the triggers from paused tags, and delete unused tags to keep your container clean
1.3 Reproduce the error
- Go to a page where the tag was marked as failed
- Turn on GTM Preview mode
- Check two places:
- GTM Preview console: trigger, condition, or consent-related errors
- Browser developer console (F12): JavaScript errors from Custom HTML tags or third-party scripts
1.4 Dependencies and configuration
- Tag sequencing: make sure dependent tags, such as consent or pixel configuration tags, fire in the right order
- Consent settings: for Consent Mode tags (e.g. Google Ads, LinkedIn), check that the right consent is granted before the tag runs
Tip: For more detailed insights, access your raw monitoring data in BigQuery (Premium feature). See Configure BigQuery data access.
Step 2 – Fix common errors per tag type
These are recurring error patterns we see across client implementations.
Outdated tag templates
Tag templates that haven't been updated for years may contain outdated methods or logic.
Impact: slower page rendering and a cluttered console, but also missing user and conversion data, which leads to incomplete retargeting audiences and lower ROAS.
Fix:
- Check the last modified date in GTM under Templates
- Compare it with the vendor's latest template version (unless it's a custom template)
- Rebuild outdated templates, or move to an officially maintained version
- Test and publish the new version
Outdated variable templates
Outdated variable templates used in tags cause tag failures. The impact is the same as for outdated tag templates.
Fix:
- Find the failing variable in the tag configuration
- Update it to a supported template version
- Rebuild the configuration if the template is discontinued
- Check that data flows correctly after the update

Custom HTML tags
1. Script timing issues
When a Custom HTML tag contains both configuration and an async library load, the order in which they run is not guaranteed.
Example: window.teads_adv_id and window.teads_e are defined after the async library call, which causes initialization errors.
<script src="https://p.teads.tv/teads-fellow.js" async></script>
<script>
window.teads_e = window.teads_e || [];
window.teads_adv_id = XXXX;
</script>Fix: define the configuration before loading the async script:
<script>
window.teads_e = window.teads_e || [];
window.teads_adv_id = XXXX;
</script>
<script src="https://p.teads.tv/teads-fellow.js" async></script>2. Missing library dependencies
If the external script URL is unavailable, the tag never runs successfully.
Example: a BlueKai tag calling tags.bkrtx.com/js/bk-coretag.js couldn't reach the library, which caused 134k failed calls.
Fix:
- Check that external scripts are available before you publish
- Add fallbacks where possible
- Contact the vendor about outdated URLs
- Move to a maintained tag template when one is available
Google Ads conversion tags
- Conversion ID or label mismatch: if even one character in the AW-XXXXXX ID or the label is wrong, Google returns an error
- Trigger misconfiguration: if conversion tags fire on every page instead of only the thank-you page, required parameters (like
valueortransaction_id) are missing on the other pages, and Google counts those as errors
Tip: Google Ads tags are sometimes marked as failed while tracking works fine. See Google Ads client-side issue and
Google Ads failed for no reason.
Microsoft Ads conversion tags
- Load the UET configuration tag first, on every page
- Set the correct variable for the UETQ variable ID parameter (usually
uetq) - Configure the Microsoft Consent Mode integration correctly
- Check that event parameters match Microsoft's expected format
Meta (Facebook) conversion tags
- The Meta configuration tag must fire before any events
- All parameters must contain the expected values; mismatched values cause errors
- Check that the Pixel ID is correct
LinkedIn Insight tags
Known issue: events fired before the consent update cause errors.
Fix: delay the events:
- Wait for the consent signal
- Add a short buffer after the consent update
- Then fire the LinkedIn events
- Consider tag sequencing for complex setups
Help us improve this guide
We keep updating these guidelines based on what we learn. Found a fix that's not on this page? Let us know at support@code-cube.io.
Need help with a specific error? Email support@code-cube.io.