After configuration there is no <updateservers> node in my xml manifest and the update server string is not found anywhere in the code.
Steps to reproduce the Bug
Under Dynamic Integration I checked "Add Update Server" and I entered a valid path to my xml source. I set the Update Server Target to "Zip" and then save and compile.
### What Happened?
After configuration there is no `<updateservers>` node in my xml manifest and the update server string is not found anywhere in the code.
### Steps to reproduce the Bug
Under Dynamic Integration I checked "Add Update Server" and I entered a valid path to my xml source. I set the Update Server Target to "Zip" and then save and compile.
### Which Joomla version are you compiling in?
6.0.3
### Which PHP version are you compiling in?
8.3.27
### Which Joomla versions are you targeting?
6.0.0
### Which PHP version are you targeting?
8.3.27
### Which Web server is JCB running on?
Joomla Docker image "joomla:5.4.0-php8.3". Apache 2
### Which Relational Database is JCB running on?
mysqlnd 8.3.27
### Which OS is JCB running on?
Alpine linux
### Which JCB version are you using?
6.1.4
### Where in JCB did this issue occur?
Compilation of a component
### On which browsers did you encounter the issue?
Firefox, Chrome
### Additional Comments
_No response_
So I tested this in a Joomla 6.0.3 system running JCB v6.1.5-beta1 and so here it is:
The Update server configuration in the Component https://raw.githubusercontent.com/JCBDemo/Joomla-Demo-Component/master/demo_updateserver.xml
And my demo.xml file looks like this:
<?xml version="1.0" encoding="utf-8"?><extensiontype="component"version="6.0"method="upgrade"><name>COM_DEMO</name><creationDate>10th March, 2026</creationDate><author>Llewellyn van der Merwe</author><authorEmail>joomla@vdm.io</authorEmail><authorUrl>https://www.vdm.io/</authorUrl><copyright>Copyright (C) 2015. All Rights Reserved</copyright><license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license><version>6.0.1</version><description>< Component Builder (JCB). While this example covers the fundamentals, JCB offers a wide range of powerful features and customization options for building advanced Joomla! extensions with ease.</p>
<p>Created by <a href="https://www.vdm.io/" target="_blank">Llewellyn van der Merwe</a><br /><small>Development started 16th October, 2025</small></p>
]]></description><namespacepath="src">Demo\Component\Demo</namespace><!-- Runs on install --><install><sql><filedriver="mysql"charset="utf8">sql/install.mysql.utf8.sql</file></sql></install><!-- Runs on uninstall --><uninstall><sql><filedriver="mysql"charset="utf8">sql/uninstall.mysql.utf8.sql</file></sql></uninstall><!-- Runs on install/uninstall/update --><scriptfile>DemoInstallerScript.php</scriptfile><mediadestination="com_demo"folder="media"><filename>index.html</filename><folder>js</folder><folder>css</folder><folder>images</folder><folder>datatable</folder><folder>uikit-v3</folder></media><!-- Update Schema --><update><schemas><schemapathtype="mysql">sql/updates/mysql/</schemapath></schemas></update><filesfolder="site"><filename>index.html</filename><folder>assets</folder><folder>forms</folder><folder>layouts</folder><folder>src</folder><folder>tmpl</folder></files><languagesfolder="site"><languagetag="en-GB">language/en-GB/en-GB.com_demo.ini</language><languagetag="en-GB">language/en-GB/en-GB.com_demo.sys.ini</language></languages><administration><menu>COM_DEMO_MENU</menu><submenu><!-- Instead of link you can specify individual link attributes --><menuoption="com_demo"view="demo">COM_DEMO_MENU_DASHBOARD</menu><menuoption="com_demo"view="looks">COM_DEMO_MENU_LOOKS</menu><menuoption="com_demo"view="importer">COM_DEMO_MENU_IMPORTER</menu><menuoption="com_demo"view="details">COM_DEMO_MENU_DETAILS</menu><menuoption="com_demo"view="addresses">COM_DEMO_MENU_ADDRESSES</menu><menuoption="com_demo"view="regions">COM_DEMO_MENU_REGIONS</menu><menuoption="com_demo"view="subregions">COM_DEMO_MENU_SUBREGIONS</menu><menuoption="com_demo"view="countries">COM_DEMO_MENU_COUNTRIES</menu><menuoption="com_demo"view="states">COM_DEMO_MENU_STATES</menu><menuoption="com_demo"view="cities">COM_DEMO_MENU_CITIES</menu><menuoption="com_demo"view="files">COM_DEMO_MENU_FILES</menu><menuoption="com_demo"view="timezones">COM_DEMO_MENU_TIMEZONES</menu><menuoption="com_demo"view="address_types">COM_DEMO_MENU_ADDRESS_TYPES</menu><menuoption="com_demo"view="file_types">COM_DEMO_MENU_FILE_TYPES</menu><menuoption="com_demo"view="user_entity_maps">COM_DEMO_MENU_USER_ENTITY_MAPS</menu><menuoption="com_demo"view="items_import_queue">COM_DEMO_MENU_ITEMS_IMPORT_QUEUE</menu></submenu><filesfolder="admin"><filename>access.xml</filename><filename>config.xml</filename><filename>index.html</filename><filename>README.txt</filename><folder>assets</folder><folder>forms</folder><folder>layouts</folder><folder>presets</folder><folder>services</folder><folder>sql</folder><folder>src</folder><folder>tmpl</folder></files><languagesfolder="admin"><languagetag="en-GB">language/en-GB/en-GB.com_demo.ini</language><languagetag="en-GB">language/en-GB/en-GB.com_demo.sys.ini</language></languages></administration><updateservers><servertype="extension"enabled="1"element="com_demo"name="Demo">https://raw.githubusercontent.com/JCBDemo/Joomla-Demo-Component/master/demo_updateserver.xml</server></updateservers></extension>
And in the JCB component the update server is setup exactly the same way as shown in the screenshot.
Please let us know if this helps clarify your issue. If you're still not getting it to work please share additional details like screenshots and code snippets for us to help debug this properly.
So I tested this in a Joomla 6.0.3 system running JCB v6.1.5-beta1 and so here it is:
The Update server configuration in the Component

`https://raw.githubusercontent.com/JCBDemo/Joomla-Demo-Component/master/demo_updateserver.xml`
And my `demo.xml` file looks like this:
```xml
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="6.0" method="upgrade">
<name>COM_DEMO</name>
<creationDate>10th March, 2026</creationDate>
<author>Llewellyn van der Merwe</author>
<authorEmail>joomla@vdm.io</authorEmail>
<authorUrl>https://www.vdm.io/</authorUrl>
<copyright>Copyright (C) 2015. All Rights Reserved</copyright>
<license>GNU/GPL Version 2 or later - http://www.gnu.org/licenses/gpl-2.0.html</license>
<version>6.0.1</version>
<description>< Component Builder (JCB). While this example covers the fundamentals, JCB offers a wide range of powerful features and customization options for building advanced Joomla! extensions with ease.</p>
<p>Created by <a href="https://www.vdm.io/" target="_blank">Llewellyn van der Merwe</a><br /><small>Development started 16th October, 2025</small></p>
]]></description>
<namespace path="src">Demo\Component\Demo</namespace>
<!-- Runs on install -->
<install>
<sql>
<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
</sql>
</install>
<!-- Runs on uninstall -->
<uninstall>
<sql>
<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
</sql>
</uninstall>
<!-- Runs on install/uninstall/update -->
<scriptfile>DemoInstallerScript.php</scriptfile>
<media destination="com_demo" folder="media">
<filename>index.html</filename>
<folder>js</folder>
<folder>css</folder>
<folder>images</folder>
<folder>datatable</folder>
<folder>uikit-v3</folder>
</media>
<!-- Update Schema -->
<update>
<schemas>
<schemapath type="mysql">sql/updates/mysql/</schemapath>
</schemas>
</update>
<files folder="site">
<filename>index.html</filename>
<folder>assets</folder>
<folder>forms</folder>
<folder>layouts</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages folder="site">
<language tag="en-GB">language/en-GB/en-GB.com_demo.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_demo.sys.ini</language>
</languages>
<administration>
<menu>COM_DEMO_MENU</menu>
<submenu>
<!-- Instead of link you can specify individual link attributes -->
<menu option="com_demo" view="demo">COM_DEMO_MENU_DASHBOARD</menu>
<menu option="com_demo" view="looks">COM_DEMO_MENU_LOOKS</menu>
<menu option="com_demo" view="importer">COM_DEMO_MENU_IMPORTER</menu>
<menu option="com_demo" view="details">COM_DEMO_MENU_DETAILS</menu>
<menu option="com_demo" view="addresses">COM_DEMO_MENU_ADDRESSES</menu>
<menu option="com_demo" view="regions">COM_DEMO_MENU_REGIONS</menu>
<menu option="com_demo" view="subregions">COM_DEMO_MENU_SUBREGIONS</menu>
<menu option="com_demo" view="countries">COM_DEMO_MENU_COUNTRIES</menu>
<menu option="com_demo" view="states">COM_DEMO_MENU_STATES</menu>
<menu option="com_demo" view="cities">COM_DEMO_MENU_CITIES</menu>
<menu option="com_demo" view="files">COM_DEMO_MENU_FILES</menu>
<menu option="com_demo" view="timezones">COM_DEMO_MENU_TIMEZONES</menu>
<menu option="com_demo" view="address_types">COM_DEMO_MENU_ADDRESS_TYPES</menu>
<menu option="com_demo" view="file_types">COM_DEMO_MENU_FILE_TYPES</menu>
<menu option="com_demo" view="user_entity_maps">COM_DEMO_MENU_USER_ENTITY_MAPS</menu>
<menu option="com_demo" view="items_import_queue">COM_DEMO_MENU_ITEMS_IMPORT_QUEUE</menu>
</submenu>
<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>index.html</filename>
<filename>README.txt</filename>
<folder>assets</folder>
<folder>forms</folder>
<folder>layouts</folder>
<folder>presets</folder>
<folder>services</folder>
<folder>sql</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages folder="admin">
<language tag="en-GB">language/en-GB/en-GB.com_demo.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_demo.sys.ini</language>
</languages>
</administration>
<updateservers>
<server type="extension" enabled="1" element="com_demo" name="Demo">https://raw.githubusercontent.com/JCBDemo/Joomla-Demo-Component/master/demo_updateserver.xml</server>
</updateservers>
</extension>
```
Take note of:
```
<updateservers>
<server type="extension" enabled="1" element="com_demo" name="Demo">https://raw.githubusercontent.com/JCBDemo/Joomla-Demo-Component/master/demo_updateserver.xml</server>
</updateservers>
```
In-fact, if you check in the JCB package in the `pkg_component_builder.xml` you'll see the exact same setup:
```
<updateservers>
<server type="extension" name="Component Builder Package - Updates" element="pkg_component_builder">https://raw.githubusercontent.com/joomengine/Joomla-Component-Builder/refs/heads/6.x/componentbuilder_update_server.xml</server>
</updateservers>
```
And in the JCB component the update server is setup exactly the same way as shown in the screenshot.
Please let us know if this helps clarify your issue. If you're still not getting it to work please share additional details like screenshots and code snippets for us to help debug this properly.
From there I compile for Joomla 6.
The resulting xml install file is attached in the zip file.
Here is my configuration:
<img width="801" alt="image.png" src="attachments/5c273fb8-f93a-42ed-9439-f950a604ddaa">
From there I compile for Joomla 6.
The resulting xml install file is attached in the zip file.
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="6.0" method="upgrade">
<name>COM_THREEDBUG</name>
<creationDate>10th March, 2026</creationDate>
<author>Allan Dowdeswell</author>
<authorEmail>support@3dbug.net</authorEmail>
<authorUrl>https://3dbug.net/</authorUrl>
<copyright>Copyright (C) 2026. Confidant Communications. All Rights Reserved</copyright>
<license>GNU General Public License version 2 or later; see description.txt</license>
<version>1.1.0beta</version>
<description><![CDATA[
<h1>3DBug (v.1.1.0beta)</h1>
<div style="clear: both;"></div>
<p>3DBug Studio lets you display your Joomla content in 2D or 3D, using the graphics you prefer. You can now make a graphical site map of your website, make your own navigation map, property tour, or museum tour. What will you build today?</p>
<p>Created by <a href="https://3dbug.net/" target="_blank">Allan Dowdeswell</a><br /><small>Development started 22nd February, 2025</small></p>
]]></description>
<namespace path="src">Confidant\Component\Threedbug</namespace>
<!-- Runs on install -->
<install>
<sql>
<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
</sql>
</install>
<!-- Runs on uninstall -->
<uninstall>
<sql>
<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
</sql>
</uninstall>
<!-- Runs on install/uninstall/update -->
<scriptfile>ThreedbugInstallerScript.php</scriptfile>
<media destination="com_threedbug" folder="media">
<filename>index.html</filename>
<folder>js</folder>
<folder>css</folder>
<folder>images</folder>
<folder>3dbugeditor</folder>
<folder>3dbugadmin</folder>
</media>
<!-- Update Schema -->
<update>
<schemas>
<schemapath type="mysql">sql/updates/mysql/</schemapath>
</schemas>
</update>
<files folder="site">
<filename>index.html</filename>
<folder>assets</folder>
<folder>forms</folder>
<folder>layouts</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages folder="site">
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.sys.ini</language>
</languages>
<administration>
<menu>COM_THREEDBUG_MENU</menu>
<submenu>
<!-- Instead of link you can specify individual link attributes -->
<menu option="com_threedbug" view="threedbugdashboard">COM_THREEDBUG_MENU_THREEDBUGDASHBOARD</menu>
<menu option="com_threedbug" view="worlds">COM_THREEDBUG_MENU_WORLDS</menu>
</submenu>
<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>index.html</filename>
<folder>assets</folder>
<folder>forms</folder>
<folder>layouts</folder>
<folder>presets</folder>
<folder>services</folder>
<folder>sql</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages folder="admin">
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.sys.ini</language>
</languages>
</administration>
</extension>
Perhaps this is more helpful for viewing:
```
<?xml version="1.0" encoding="utf-8"?>
<extension type="component" version="6.0" method="upgrade">
<name>COM_THREEDBUG</name>
<creationDate>10th March, 2026</creationDate>
<author>Allan Dowdeswell</author>
<authorEmail>support@3dbug.net</authorEmail>
<authorUrl>https://3dbug.net/</authorUrl>
<copyright>Copyright (C) 2026. Confidant Communications. All Rights Reserved</copyright>
<license>GNU General Public License version 2 or later; see description.txt</license>
<version>1.1.0beta</version>
<description><![CDATA[
<h1>3DBug (v.1.1.0beta)</h1>
<div style="clear: both;"></div>
<p>3DBug Studio lets you display your Joomla content in 2D or 3D, using the graphics you prefer. You can now make a graphical site map of your website, make your own navigation map, property tour, or museum tour. What will you build today?</p>
<p>Created by <a href="https://3dbug.net/" target="_blank">Allan Dowdeswell</a><br /><small>Development started 22nd February, 2025</small></p>
]]></description>
<namespace path="src">Confidant\Component\Threedbug</namespace>
<!-- Runs on install -->
<install>
<sql>
<file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
</sql>
</install>
<!-- Runs on uninstall -->
<uninstall>
<sql>
<file driver="mysql" charset="utf8">sql/uninstall.mysql.utf8.sql</file>
</sql>
</uninstall>
<!-- Runs on install/uninstall/update -->
<scriptfile>ThreedbugInstallerScript.php</scriptfile>
<media destination="com_threedbug" folder="media">
<filename>index.html</filename>
<folder>js</folder>
<folder>css</folder>
<folder>images</folder>
<folder>3dbugeditor</folder>
<folder>3dbugadmin</folder>
</media>
<!-- Update Schema -->
<update>
<schemas>
<schemapath type="mysql">sql/updates/mysql/</schemapath>
</schemas>
</update>
<files folder="site">
<filename>index.html</filename>
<folder>assets</folder>
<folder>forms</folder>
<folder>layouts</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages folder="site">
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.sys.ini</language>
</languages>
<administration>
<menu>COM_THREEDBUG_MENU</menu>
<submenu>
<!-- Instead of link you can specify individual link attributes -->
<menu option="com_threedbug" view="threedbugdashboard">COM_THREEDBUG_MENU_THREEDBUGDASHBOARD</menu>
<menu option="com_threedbug" view="worlds">COM_THREEDBUG_MENU_WORLDS</menu>
</submenu>
<files folder="admin">
<filename>access.xml</filename>
<filename>config.xml</filename>
<filename>index.html</filename>
<folder>assets</folder>
<folder>forms</folder>
<folder>layouts</folder>
<folder>presets</folder>
<folder>services</folder>
<folder>sql</folder>
<folder>src</folder>
<folder>tmpl</folder>
</files>
<languages folder="admin">
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.ini</language>
<language tag="en-GB">language/en-GB/en-GB.com_threedbug.sys.ini</language>
</languages>
</administration>
</extension>
```
JCB needs to use the url to produce a file name, and since your url does not end with filename.xml jcb is not able to detect the file name and therefore did not add the url.
JCB needs to use the url to produce a file name, and since your url does not end with `filename.xml` jcb is not able to detect the file name and therefore did not add the url.
This is the moment JCB does the work: https://git.vdm.dev/joomla/Component-Builder/src/commit/79f9a42a5c5058bdd56c2a3b184a397334c78500/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Component/Data.php#L1243
As you can see in the code, you can also add a query parameter with the file name.
When no file name could be found: https://git.vdm.dev/joomla/Component-Builder/src/commit/79f9a42a5c5058bdd56c2a3b184a397334c78500/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Component/Data.php#L1172
The update server is not added.
Thanks for the info. I made a 301 redirect on my server which points to the proper place, so I could make a sane-looking URL for the updateserver info.
Thanks for the info. I made a 301 redirect on my server which points to the proper place, so I could make a sane-looking URL for the updateserver info.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What Happened?
After configuration there is no
<updateservers>node in my xml manifest and the update server string is not found anywhere in the code.Steps to reproduce the Bug
Under Dynamic Integration I checked "Add Update Server" and I entered a valid path to my xml source. I set the Update Server Target to "Zip" and then save and compile.
Which Joomla version are you compiling in?
6.0.3
Which PHP version are you compiling in?
8.3.27
Which Joomla versions are you targeting?
6.0.0
Which PHP version are you targeting?
8.3.27
Which Web server is JCB running on?
Joomla Docker image "joomla:5.4.0-php8.3". Apache 2
Which Relational Database is JCB running on?
mysqlnd 8.3.27
Which OS is JCB running on?
Alpine linux
Which JCB version are you using?
6.1.4
Where in JCB did this issue occur?
Compilation of a component
On which browsers did you encounter the issue?
Firefox, Chrome
Additional Comments
No response
So I tested this in a Joomla 6.0.3 system running JCB v6.1.5-beta1 and so here it is:
The Update server configuration in the Component

https://raw.githubusercontent.com/JCBDemo/Joomla-Demo-Component/master/demo_updateserver.xmlAnd my
demo.xmlfile looks like this:Take note of:
In-fact, if you check in the JCB package in the
pkg_component_builder.xmlyou'll see the exact same setup:And in the JCB component the update server is setup exactly the same way as shown in the screenshot.
Please let us know if this helps clarify your issue. If you're still not getting it to work please share additional details like screenshots and code snippets for us to help debug this properly.
Here is my configuration:

From there I compile for Joomla 6.
The resulting xml install file is attached in the zip file.
Perhaps this is more helpful for viewing:
JCB needs to use the url to produce a file name, and since your url does not end with
filename.xmljcb is not able to detect the file name and therefore did not add the url.This is the moment JCB does the work:
79f9a42a5c/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Component/Data.php (L1243)As you can see in the code, you can also add a query parameter with the file name.
When no file name could be found:
79f9a42a5c/libraries/vendor_jcb/VDM.Joomla/src/Componentbuilder/Compiler/Component/Data.php (L1172)The update server is not added.
Thanks for the info. I made a 301 redirect on my server which points to the proper place, so I could make a sane-looking URL for the updateserver info.