I copied the docker-compose.yml template to create a new Joomla 6 site with JCB installed. I click 'new component' and filled in the required fields on the first tab.
then i went to compile and selected joomla 6 as target and clicked compile.
An unclear error message showed:
Failed to build dynamic structure
I do not know what to do. This message is not helpful.
Next, i added an admin view on the component and again filled in the required fields on the first tab. clicked save, save and tried to compile again; another error (different)
** VDM\Joomla\Abstraction\Registry::get(): Argument #1 ($path) must be of type string, null given, called in /var/www/html/libraries/vendor_jcb/VDM.Joomla/src/Abstraction/Registry/Traits/VarExport.php on line 51 **
Also unclear.
Steps to reproduce the Bug
see what happened above.
Which Joomla version are you compiling in?
6.1.1
Which PHP version are you compiling in?
8.4
Which Joomla versions are you targeting?
6
Which PHP version are you targeting?
8.4
Which Web server is JCB running on?
JCB docker
Which Relational Database is JCB running on?
jcb docker
Which OS is JCB running on?
jcb docker
Which JCB version are you using?
6.1.6
Where in JCB did this issue occur?
Compilation of a component
On which browsers did you encounter the issue?
Firefox
Additional Comments
No response
### What Happened?
I copied the docker-compose.yml template to create a new Joomla 6 site with JCB installed. I click 'new component' and filled in the required fields on the first tab.
then i went to compile and selected joomla 6 as target and clicked compile.
An unclear error message showed:
**Failed to build dynamic structure**
I do not know what to do. This message is not helpful.
Next, i added an admin view on the component and again filled in the required fields on the first tab. clicked save, save and tried to compile again; another error (different)
** VDM\Joomla\Abstraction\Registry::get(): Argument #1 ($path) must be of type string, null given, called in /var/www/html/libraries/vendor_jcb/VDM.Joomla/src/Abstraction/Registry/Traits/VarExport.php on line 51 **
Also unclear.
### Steps to reproduce the Bug
see what happened above.
### Which Joomla version are you compiling in?
6.1.1
### Which PHP version are you compiling in?
8.4
### Which Joomla versions are you targeting?
6
### Which PHP version are you targeting?
8.4
### Which Web server is JCB running on?
JCB docker
### Which Relational Database is JCB running on?
jcb docker
### Which OS is JCB running on?
jcb docker
### Which JCB version are you using?
6.1.6
### Where in JCB did this issue occur?
Compilation of a component
### On which browsers did you encounter the issue?
Firefox
### Additional Comments
_No response_
wschwarte
added the Bug label 2026-07-02 10:36:55 +00:00
Thanks for reporting this, and sorry that the error message was not helpful.
JCB has a steep learning curve, especially when starting with a new Joomla 6/JCB Docker setup, so before we treat this as a compiler bug we first need to confirm exactly what environment and starting point you are using.
We build and compile components on Joomla 6 with the JCB Docker environment regularly, so the Joomla 6 target itself should work. The error you are seeing may be caused by an incomplete component structure, an incomplete admin view, a setup difference, or a Docker/container state issue. At the moment we do not yet have enough information to know which one it is.
Was this a completely fresh Docker setup, or were existing Docker volumes reused from an earlier test?
After starting the containers, did the Joomla installation complete normally without any warnings or failed installation steps?
Can you compile the demo component that is already available in JCB?
This is an important test because it tells us whether the compiler and Docker environment are working correctly before we look at the custom component you created.
When you created your own component, did you add at least one complete admin view with at least one field before compiling?
A component shell by itself is not normally enough for a successful compile. If the component or admin view is incomplete, JCB should still give you a clearer validation message, but it may explain why the compiler reached this error.
For the admin view you added, please confirm whether the following were completed:
single view name
list view name
database table name/details
at least one field
the field was linked correctly to the admin view
the admin view and component were both saved before compiling
Have you gone through the Docker documentation here?
You do not need to debug the PHP error yourself. What we need first is to establish whether this is:
a Docker setup issue,
an incomplete component/view configuration,
a problem with the specific component being created,
or a compiler validation bug where JCB should catch the missing structure earlier and show a better message.
The second error:
VDM\Joomla\Abstraction\Registry::get(): Argument #1 ($path) must be of type string, null given
suggests that somewhere during compilation JCB expected a valid registry path but received an empty value instead. That should not surface as a low-level PHP error, so we will also look at improving the compiler validation/message around this area.
For now, please try compiling the demo component first and let us know whether that succeeds. If the demo component compiles successfully, then the Docker/Joomla/JCB environment is probably working, and we can focus on what is missing in the new component setup. If the demo component fails too, then we need to look more closely at the Docker setup and installation state.
Thanks for reporting this, and sorry that the error message was not helpful.
JCB has a steep learning curve, especially when starting with a new Joomla 6/JCB Docker setup, so before we treat this as a compiler bug we first need to confirm exactly what environment and starting point you are using.
We build and compile components on Joomla 6 with the JCB Docker environment regularly, so the Joomla 6 target itself should work. The error you are seeing may be caused by an incomplete component structure, an incomplete admin view, a setup difference, or a Docker/container state issue. At the moment we do not yet have enough information to know which one it is.
Could you please help us confirm the following?
1. Did you use this exact `docker-compose.yml` file?
```yaml
services:
joomla:
image: octoleo/joomengine:latest
ports:
- "8080:80"
environment:
JOOMLA_DB_HOST: mariadb:3306
JOOMLA_DB_USER: joomengine
JOOMLA_DB_NAME: joomengine
JOOMLA_DB_PASSWORD: secure_password12345
# JOOMLA_CLI_COMMANDS: "componentbuilder:pull:joomla_component --items=d7e30702-ec49-45ac-8897-0389d61d6da0"
depends_on:
- mariadb
volumes:
- joomla_data:/var/www/html
mariadb:
image: mariadb:latest
environment:
MARIADB_USER: joomengine
MARIADB_DATABASE: joomengine
MARIADB_PASSWORD: secure_password12345
MARIADB_ROOT_PASSWORD: your_root_secure_password12345
volumes:
- mariadb_data:/var/lib/mysql
volumes:
joomla_data:
mariadb_data:
```
2. Was this a completely fresh Docker setup, or were existing Docker volumes reused from an earlier test?
3. After starting the containers, did the Joomla installation complete normally without any warnings or failed installation steps?
4. Can you compile the demo component that is already available in JCB?
This is an important test because it tells us whether the compiler and Docker environment are working correctly before we look at the custom component you created.
5. When you created your own component, did you add at least one complete admin view with at least one field before compiling?
A component shell by itself is not normally enough for a successful compile. If the component or admin view is incomplete, JCB should still give you a clearer validation message, but it may explain why the compiler reached this error.
6. For the admin view you added, please confirm whether the following were completed:
* single view name
* list view name
* database table name/details
* at least one field
* the field was linked correctly to the admin view
* the admin view and component were both saved before compiling
7. Have you gone through the Docker documentation here?
https://github.com/joomengine/docker/blob/master/docker/README.md
8. Have you gone through the main JCB documentation or beginner material?
https://github.com/joomengine/jcb-documentation/blob/master/english/README.md
There is also a video playlist here:
https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE
You do not need to debug the PHP error yourself. What we need first is to establish whether this is:
* a Docker setup issue,
* an incomplete component/view configuration,
* a problem with the specific component being created,
* or a compiler validation bug where JCB should catch the missing structure earlier and show a better message.
The second error:
```text
VDM\Joomla\Abstraction\Registry::get(): Argument #1 ($path) must be of type string, null given
```
suggests that somewhere during compilation JCB expected a valid registry path but received an empty value instead. That should not surface as a low-level PHP error, so we will also look at improving the compiler validation/message around this area.
For now, please try compiling the demo component first and let us know whether that succeeds. If the demo component compiles successfully, then the Docker/Joomla/JCB environment is probably working, and we can focus on what is missing in the new component setup. If the demo component fails too, then we need to look more closely at the Docker setup and installation state.
all completed ok. ran docker compose up and site loaded perfectly. could log in and JCB was installed.
sorry, forgot to mention. the demo6 component could be compiled. I even removed demo6 completely, pull a fresh one and compiled that one without issues.
at first try i did not add anything. compiled and got the dynamic fields(?) error. (a better message would be 'we need at least 1 admin view and 1 xxx etc.).
i only entered a 'system name', a 'name (single record)', 'name (list of recoreds)', short description, description. It was automatically linked as i opened the view from the component editor. So only the 'Details' Tab.
yes, that is where i got the YML from
no. we are JCB for older joomla setups and i was just trying to test the compile, and push/pull git setup.
I think if you would create a new folder. put in a compose.yml. up it. open locahost;8080, goto jcb, add component, compile. you would get the same errors.
the fact that demo6 is compiling tells me that it should work, but error handling isn't handled user friendly. so, some better error messages, of add some validation BEFORE compiling, would help make the product even better.
thanks
1. Yes. the compose.yml from the instructions
2. fresh docker.
3. all completed ok. ran docker compose up and site loaded perfectly. could log in and JCB was installed.
4. sorry, forgot to mention. the demo6 component could be compiled. I even removed demo6 completely, pull a fresh one and compiled that one without issues.
5. at first try i did not add anything. compiled and got the dynamic fields(?) error. (a better message would be 'we need at least 1 admin view and 1 xxx etc.).
6. i only entered a 'system name', a 'name (single record)', 'name (list of recoreds)', short description, description. It was automatically linked as i opened the view from the component editor. So only the 'Details' Tab.
7. yes, that is where i got the YML from
8. no. we are JCB for older joomla setups and i was just trying to test the compile, and push/pull git setup.
I think if you would create a new folder. put in a compose.yml. up it. open locahost;8080, goto jcb, add component, compile. you would get the same errors.
the fact that demo6 is compiling tells me that it should work, but error handling isn't handled user friendly. so, some better error messages, of add some validation BEFORE compiling, would help make the product even better.
thanks
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?
I copied the docker-compose.yml template to create a new Joomla 6 site with JCB installed. I click 'new component' and filled in the required fields on the first tab.
then i went to compile and selected joomla 6 as target and clicked compile.
An unclear error message showed:
Failed to build dynamic structure
I do not know what to do. This message is not helpful.
Next, i added an admin view on the component and again filled in the required fields on the first tab. clicked save, save and tried to compile again; another error (different)
** VDM\Joomla\Abstraction\Registry::get(): Argument #1 ($path) must be of type string, null given, called in /var/www/html/libraries/vendor_jcb/VDM.Joomla/src/Abstraction/Registry/Traits/VarExport.php on line 51 **
Also unclear.
Steps to reproduce the Bug
see what happened above.
Which Joomla version are you compiling in?
6.1.1
Which PHP version are you compiling in?
8.4
Which Joomla versions are you targeting?
6
Which PHP version are you targeting?
8.4
Which Web server is JCB running on?
JCB docker
Which Relational Database is JCB running on?
jcb docker
Which OS is JCB running on?
jcb docker
Which JCB version are you using?
6.1.6
Where in JCB did this issue occur?
Compilation of a component
On which browsers did you encounter the issue?
Firefox
Additional Comments
No response
Thanks for reporting this, and sorry that the error message was not helpful.
JCB has a steep learning curve, especially when starting with a new Joomla 6/JCB Docker setup, so before we treat this as a compiler bug we first need to confirm exactly what environment and starting point you are using.
We build and compile components on Joomla 6 with the JCB Docker environment regularly, so the Joomla 6 target itself should work. The error you are seeing may be caused by an incomplete component structure, an incomplete admin view, a setup difference, or a Docker/container state issue. At the moment we do not yet have enough information to know which one it is.
Could you please help us confirm the following?
docker-compose.ymlfile?Was this a completely fresh Docker setup, or were existing Docker volumes reused from an earlier test?
After starting the containers, did the Joomla installation complete normally without any warnings or failed installation steps?
Can you compile the demo component that is already available in JCB?
This is an important test because it tells us whether the compiler and Docker environment are working correctly before we look at the custom component you created.
A component shell by itself is not normally enough for a successful compile. If the component or admin view is incomplete, JCB should still give you a clearer validation message, but it may explain why the compiler reached this error.
https://github.com/joomengine/docker/blob/master/docker/README.md
https://github.com/joomengine/jcb-documentation/blob/master/english/README.md
There is also a video playlist here:
https://www.youtube.com/playlist?list=PLQRGFI8XZ_wtGvPQZWBfDzzlERLQgpMRE
You do not need to debug the PHP error yourself. What we need first is to establish whether this is:
The second error:
suggests that somewhere during compilation JCB expected a valid registry path but received an empty value instead. That should not surface as a low-level PHP error, so we will also look at improving the compiler validation/message around this area.
For now, please try compiling the demo component first and let us know whether that succeeds. If the demo component compiles successfully, then the Docker/Joomla/JCB environment is probably working, and we can focus on what is missing in the new component setup. If the demo component fails too, then we need to look more closely at the Docker setup and installation state.
I think if you would create a new folder. put in a compose.yml. up it. open locahost;8080, goto jcb, add component, compile. you would get the same errors.
the fact that demo6 is compiling tells me that it should work, but error handling isn't handled user friendly. so, some better error messages, of add some validation BEFORE compiling, would help make the product even better.
thanks
We work with JCB everyday, and no we do not get these errors.