I am trying to run the converter in docker (Bitbucket). I have build the image (Using the authoring/converter/bin files taken from the web sdk (downloaded in manage account). But when i try to run the converter command I get the following error: Failed to load the Exchange SDK
Am i missing some files ?
Can someone point me into the right direction into what I am doing wrong?
Hello,
Converter is using dlopen to load libA3DLIBS.so found in the authoring/converter/bin/linux64 folder. Normally this is the same folder as the converter binary, so it’s found via normal search. There are a number of other .so and .tx files in the bin folder that Exchange requires.
Be sure your docker container image contains the entire contents of the converter/bin/linux64 folder. The error you’re showing indicates that the dlopen call failed.
Thank you very much for your explaination. The error i had was that the libA3DLIBS.so was a symlink to the real shared library so docker could not access the file.
Thanks for sharing this update — that’s really helpful.
I’m currently facing what seems to be the same issue with HOOPS Exchange 2025.2.0 on Linux inside a Docker container. Even though libA3DLIBS.so is present in the expected directory, I still get the following error when trying to initialize the Exchange library:
2025-04-10 03:58:14.415 +00:00 [INF] Initializing HOOPS Exchange Library...
2025-04-10 03:58:14.424 +00:00 [FTL] HOOPS Exchange initialization failed: Unable to load Exchange.
/app/HOOPS_Exchange_Publish_2025.2.0_linux/bin/linux64/libA3DLIBS.so
Please check the path you specified.
I’ve double-checked that:
The file exists and is readable inside the container
Environment variables like LD_LIBRARY_PATH are correctly set
Required native Linux dependencies are installed
Based on your comment about symlinks — I suspect I might be running into the same problem, where Docker can’t resolve the symbolic link properly.
Could you please elaborate on how you resolved the symlink issue? Or did you change something in your Docker setup to handle it?
Thanks in advance! Your insight could really help me get this sorted.
Despite this setup, I’m still encountering the following error at runtime:
HOOPS Exchange initialization failed: Unable to load Exchange.
Would you be open to sharing your Dockerfile or the specific changes you made to get this working on your end? It would be super helpful to compare and understand what resolved it for you.
Hi @tino,
I’m currently deploying a Converter and Exchange project using C# (.NET) in a Linux-based Docker container, utilizing the HOOPS Exchange C# Wrapper.
The converter.exe runs perfectly in the Linux container. However, the Exchange C# Wrapper fails when uploading CAD files due to shared library loading issues.
During debugging, I identified that the failure occurs in the following wrapper method, specifically at the call to dlopen(path, RTLD_LAZY | RTLD_GLOBAL):
LoadLibraryNoThrow() path: /home/azureuser/HOOPS_Exchange_Publish_2025.2.0/bin/linux64/liblibBuffer.so
LoadLibraryNoThrow()
LoadLibraryNoThrow() Error: Unable to load shared library 'dl' or one of its dependencies.
/home/azureuser/publish-l5/dl.so: cannot open shared object file: No such file or directory
/home/azureuser/publish-l5/libdl.so: cannot open shared object file: No such file or directory
This error appears for every .so file in the bin/linux64 directory.
Note: Everything works perfectly in a Windows-based Docker container.
Could you please advise how to resolve this for Linux? Any suggestions regarding missing dependencies or Docker configuration would be appreciated.