Skip to main content

Troubleshooting Dynamic Assets

What to check when your Dynamic Asset doesn't display correctly, shows errors, or returns empty content.

Updated today

Troubleshooting Dynamic Assets

Dynamic Assets rely on an external source file, a server connection, and correct placeholder syntax working together. When something goes wrong, it's usually one of a handful of common issues. This article helps you diagnose and fix them.


In this article


What happens when something goes wrong

If Apsis One encounters an error when fetching Dynamic Asset content — either at the time of adding the Asset to the email or at send-out — the behaviour is:

⚠️ The Row is not added (it is simply removed from the email)


If the source file cannot be fetched or is invalid, the Row containing the Dynamic Asset is removed entirely from the sent email. The email is still sent, but without the Dynamic Asset content. The recipient will not see an error message — the Row simply won't be there. If you have chosen the setting to add space rows in your dynamic assets - they will still be there!

This means it's critical to test your Dynamic Asset before sending, especially when using "At send out" — because if the source goes down between scheduling and sending, your email will arrive with the dynamic content missing.

⚠️ Error message at the top of the page in the email editor when dropping the asset in the email

Check that you have a feed url in the asset, and that the settings match the type of feed you are using. See below for more extensive troubleshooting.


Common errors and how to fix them

Error / symptom

Likely cause

How to fix

Source file not found

The URL is incorrect, the file has been moved, or the server is down.

Verify the URL in a browser or REST API tool. Check that the file is publicly accessible.

Source server returns an error

The server returned a 4xx or 5xx HTTP status code.

Check the server logs. Ensure the URL returns a 200 OK status. Test with a tool like ReqBin.

Source file is too large

The file exceeds 10 MB.

Reduce the file size by filtering items before hosting. Use a pre-filtered version of the feed for Apsis One.

Source file is in the wrong format

The file is not valid JSON, XML, or RSS — or the server returns an unsupported Content-Type header.

Validate the file with a JSON/XML validator. Ensure the server responds with one of: application/json, application/xml, application/rss+xml, or text/xml.

Server takes too long to respond

The source server didn't respond within 5 seconds.

Check your server's performance. Consider caching the feed on a faster CDN or hosting provider.

Placeholders show as raw text

The placeholder name doesn't match any property in the source file, or the source hasn't been fetched yet.

Verify that placeholder names exactly match the property names in your source (case-sensitive). Ensure you've clicked "Fetch all" or "At send out".

Images don't load

The image URLs in your source file are broken, expired, or pointing to a server that blocks external requests.

Test each image URL directly in a browser. Ensure they return valid image files (PNG, JPG, JPEG, or GIF).

Empty rows or blank content

The source file has fewer items than the Number of items setting, or the Property path is incorrect.

Verify the Number of items setting in Loop settings. Check the Property path — make sure it points to the correct array in your source.

HEAD request not supported

The server hosting your source file doesn't accept HEAD requests.

Test with a REST API tool (send a HEAD request to your URL). If your server doesn't support HEAD, you'll need to configure it or use a different hosting solution.

XML error with g: tags

Your XML source contains namespaced tags (e.g. g:price, common in Google product feeds) that aren't handled correctly.

Remove or replace the namespace prefix in your XML before using it as a source. Alternatively, create a pre-processed version of the feed without namespace prefixes.


Source file validation checklist

Before connecting a source file to your Dynamic Asset, verify the following:

Check

How to verify

Valid format

Paste your JSON into JSONLint or your XML into an XML validator. Fix any syntax errors.

File size under 10 MB

Check the file size. If it exceeds 10 MB, create a filtered version with fewer items.

Correct Content-Type header

Use a REST API tool to send a GET request and check the Content-Type header in the response. Must be application/json, application/xml, application/rss+xml, or text/xml.

Property names match placeholders

Compare the property names in your source file with the placeholders in your Asset. They must match exactly (case-sensitive).

Image URLs are valid and accessible

Open each image URL in a browser. Ensure they load and are not behind authentication or expired links.

Item IDs exist (if filtering by ID)

If you plan to filter by ID, verify that each item in your source has an id property and the IDs match what you'll enter in the filter.

No XML namespace issues

If using XML, check for g: or other namespace-prefixed tags that may cause parsing issues.

50 items or fewer per fetch

If your source has more than 50 items, use filtering (by ID or number) to limit the items. To display more than 50, add the Asset to the email again.


Server and connection checklist

Check

How to verify

URL is publicly accessible

Open the URL in a browser from a different network (not your internal network). If it requires authentication, it won't work.

Server responds within 5 seconds

Use a REST API tool to time the response. If it's slow, consider hosting the feed on a CDN.

HEAD requests are supported

Send a HEAD request to the URL with a REST API tool. Verify you get a 200 OK response.

Server is reliable at send time

If using "At send out", the server must be available at the exact moment the email is sent. Consider using "Fetch all" for critical campaigns if your server has occasional downtime.


Placeholder issues

Issue

Cause

Solution

Placeholder shows as {{title}} in the sent email

The property name in the source doesn't match the placeholder, or the source wasn't fetched.

Check for exact case-sensitive match. Ensure you fetched the data or selected "At send out".

Placeholder shows empty (blank space)

The property exists but has an empty value in the source, or the item doesn't have that property.

Check your source file — ensure the property has a value for all items you're displaying.

Image placeholder doesn't render

The image URL in the source is broken, uses an unsupported format, or the server blocks external access.

Test the image URL directly in a browser. Ensure it returns PNG, JPG, JPEG, or GIF.

Link placeholder doesn't work

The Link type is not set to "Feed Property" in Link Settings.

Open Link Settings for the button/link element. Set Link type to Feed Property, then enter the placeholder (e.g. {{url}}).

Sequence placeholder creates extra empty rows

The Number of items in Loop settings isn't evenly divisible by the number of sequence placeholders.

Adjust the Number of items to an even multiple of your sequence count (e.g. 4, 6, 8 for 2 sequence placeholders).


Common questions

Question

Answer

"Can I edit placeholders after adding the Asset to an email?"

No — placeholders can only be edited in the Asset itself (from the Assets tab). Changes made in the email draft only affect that specific email activity, not the original Asset.

"What happens if my source file changes after I clicked Fetch all?"

Nothing — the email uses the cached data from the moment you fetched it. To get fresh data, use "At send out" instead, or remove and re-add the Asset.

"Can I use Dynamic Assets in Marketing Automation?"

Yes. In Marketing Automation, the Dynamic Asset fetches fresh content every 5 minutes. Each Profile receives the version that was current at the time of their send.

"The email was sent but the Dynamic Asset content is missing"

The source file could not be fetched at send time (server down, URL changed, timeout, or file format error). The Row was removed from the email. Always test with "Fetch all" before scheduling, and ensure your source server is reliable.

"Can I combine a Dynamic Asset with Row Segmentation in the email?"

Yes — you can add Row Segmentation in the email's Row settings (just like any other Row). You can also add Segmentation data inside the source file itself for per-item Segmentation. See Using Dynamic Assets — Segmentation.


What's next?

  1. Creating Dynamic Assets — Design the Asset layout, add placeholders, and configure Loop settings.

  2. Using Dynamic Assets — Add the Asset to an email, connect the feed, filter items, and choose fetch behaviour.

  3. Email Assets — Regular Assets and how they work.

  4. Contact Customer Service — If you've tried everything above and the issue persists.

Did this answer your question?