Documentation: ContentSync plugin
Troubleshooting
Start with the log. Set Log Level to Debug in your task, run it once, and read administrator/logs/contentsync.php from the bottom up. Most problems name themselves there. Dry run and logging shows where everything is.
API authentication failed (HTTP 401)
The source site does not accept the token. Check these, in this order:
- Is the token from the source site? This is the most common mistake: a token made on the target site. A token only works on the site where it was created.
- Is the token active? Open the user on the source site, tab Joomla API Token. Active has to be Yes.
- May this user use the API? By default only Super Users may. That is a setting of the plugin API Authentication - Web Services Joomla Token on the source site.
- Is the whole token there? Copy it again. A space at the start or the end is enough to break it.
- Are the plugins on? On the source site: API Authentication - Web Services Joomla Token, User - Joomla API Token and Web Services - Content.
Some servers remove the token from the request before Joomla sees it. If everything above is right, ask the hosting company of the source site whether custom request headers are passed on.
Source URL or API key is not configured
One of the two fields is empty in the task. Open the task, fill in both and save.
Cannot reach source API
The target site got no usable answer from the source.
- Check Source Site URL. It is the address of the site itself, for example
https://www.example.com, without/administratoror/api. - Open
https://www.example.com/api/index.php/v1/content/articlesin your browser, with your own address. A message about being forbidden is good news: the API is there. A page not found means the API is not reachable at that address. - Is the source behind a login, a firewall or a maintenance page? The target server has to be able to reach it.
- A certificate error on a local or staging site: see Verify SSL Certificate in Security.
The task says it failed to run
The scheduler shows this when the task stopped before it started syncing. The real reason is in the ContentSync log: usually one of the three problems above.
The run works, but no articles arrive
- Is Dry Run still on? A dry run creates nothing.
- Look at the filters. The default state filter only takes published articles. A category ID that does not exist on the source gives an empty result.
- Does the log say skipped for every article? Then they were copied before and have not changed. That is how it should be.
- Does the log say an article was skipped because of its view level? See access levels.
The articles are there, but visitors cannot see them
Open one of the articles and look at its Access. If it says Super Users, the article had an access level of your own on the source that is not mapped, and it got the most restrictive level to be safe. Add the level to Access Level Mapping and run once with Force Resync.
Also check that the target category is published and has a menu item or a module that shows it.
The whole article is in the intro text
The source site runs Joomla 5, which hands over the intro and full text as one. See Joomla 5 and Joomla 6.
Images or files are missing
The log names every file that was skipped, with the reason.
- Outside the allowed media folder. The file is not in
images, or in PRO not in one of your Media Folders. Add the folder in PRO. - A disallowed extension. The file type is not on the list, for example an SVG or a ZIP.
- Does not appear to be a valid file. The content does not match the extension.
- Larger than the limit. Raise Maximum File Size (MB) in PRO.
- Could not download. The file is not reachable on the source, for example because it sits behind a login.
An image on another website is never downloaded. The article keeps showing it from there.
Only one category is synced
The free edition filters on one source category. If you entered a list, the first one is used and the log names the rest. PRO takes the whole list.
Custom fields stay empty
- The field has to exist on the target site, with the same name and the same type. The log says which one is missing.
- The field has to be published on both sites.
- Articles that were copied before only get their fields after one run with Force Resync.
- Does the log say the fields of the source could not be read? Then the user of the token has no access to Fields on the source site.
More in Custom fields.
Copies disappeared after I changed a filter
With Handle Deleted Articles on, an article that no longer passes the filter counts as removed. With the default action the copies are in the trash of the target site, and you can restore them there. See Removed articles and incremental sync.
The run stops halfway or times out
- Lower Batch Size, for example to 10.
- Raise Request Timeout when the source is slow to answer.
- A first run with many images is the heaviest. Run the task a few times. It continues where it left off, because everything that was copied is skipped.
Still stuck?
Send us the last run from administrator/logs/contentsync.php through the contact page, with the Joomla version of both sites. The log does not contain your API token.