[GH-ISSUE #3718] Icons not loading in container build (GET .../icons/tree/key.svg returns 400) #1301

Closed
opened 2026-03-07 21:02:13 +03:00 by kerem · 4 comments
Owner

Originally created by @maryam4s26 on GitHub (Sep 3, 2025).
Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/3718

Description

When running CloudBeaver in development mode, all icons load correctly.
But after building a Docker image and running the container, requests to icons like:

GET http://<host>:<port>/api/images/platform:/plugin/org.jkiss.dbeaver.model/icons/tree/key.svg
return 400 (Bad Request).

Image

Steps to reproduce

  1. Build the Docker image:

       ```
       docker buildx build --platform=linux/amd64 -t my-cloudbeaver:test .
       docker run -d -p 8979:8978 my-cloudbeaver:test
       ```
    
  2. Open the application in the browser.

  3. Notice that some icons (e.g. key.svg) fail to load.

Expected/Desired Behavior

Icons should load in the container the same way they do in development mode.

CloudBeaver Version

25.1.0

Additional context

No response

Originally created by @maryam4s26 on GitHub (Sep 3, 2025). Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/3718 ### Description When running CloudBeaver in development mode, all icons load correctly. But after building a Docker image and running the container, requests to icons like: `GET http://<host>:<port>/api/images/platform:/plugin/org.jkiss.dbeaver.model/icons/tree/key.svg ` return 400 (Bad Request). <img width="1460" height="609" alt="Image" src="https://github.com/user-attachments/assets/3cede6ae-b31d-4b0b-be81-ea5ae37595a3" /> ### Steps to reproduce 1. Build the Docker image: ``` docker buildx build --platform=linux/amd64 -t my-cloudbeaver:test . docker run -d -p 8979:8978 my-cloudbeaver:test ``` 2. Open the application in the browser. 3. Notice that some icons (e.g. key.svg) fail to load. ### Expected/Desired Behavior Icons should load in the container the same way they do in development mode. ### CloudBeaver Version 25.1.0 ### Additional context _No response_
kerem 2026-03-07 21:02:13 +03:00
Author
Owner

@dariamarutkina commented on GitHub (Sep 4, 2025):

Hello, @maryam4s26 !

To better understand the issue, could you please help us with a few details:

  1. The Dockerfile you used to build the image (its contents).
  2. Whether the backend is running in the container - for example, do other API requests (like login or /api/health) work?
  3. The server logs from the container at the time when the icons fail to load.

Thanks a lot for your help! 🙏

<!-- gh-comment-id:3253122732 --> @dariamarutkina commented on GitHub (Sep 4, 2025): Hello, @maryam4s26 ! To better understand the issue, could you please help us with a few details: 1. The **Dockerfile** you used to build the image (its contents). 2. Whether the backend is running in the container - for example, do other API requests (like login or `/api/health`) work? 3. The server logs from the container at the time when the icons fail to load. Thanks a lot for your help! 🙏
Author
Owner

@maryam4s26 commented on GitHub (Sep 4, 2025):

Hi, thanks for your response @dariamarutkina . Here are the requested details:

  1. Dockerfile / Build
    I am using the standard make-docker-container.sh script, but I build the image manually with this command:
docker buildx build --no-cache --platform=linux/amd64 \
  -t cloudbeaver:25.1.2 . \
  --load --file ./docker/cloudbeaver-ce/Dockerfile
  1. Backend status
    Yes, the backend is running correctly. Other API endpoints (such as /api/health and login) work without any issue.

  2. Server logs (when icons fail to load)
    Here are the relevant logs from the container at the time icons return 400 Bad Request, No obvious errors are shown in the backend logs:

04-09-2025 11:56:06.569 [qtp1413020227-86] DEBUG i.c.server.graphql.GraphQLEndpoint - API > serverConfig [user: null, sessionId: ***]
04-09-2025 11:56:06.638 [qtp1413020227-147] DEBUG i.c.server.graphql.GraphQLEndpoint - API > openSession [user: null, sessionId: ***]
04-09-2025 11:56:06.673 [qtp1413020227-147] DEBUG i.c.model.session.WebUserContext - refresh permissions null ***
04-09-2025 11:56:06.681 [qtp1413020227-147] INFO  i.c.model.session.WebSession - Project created: [ID=g_GlobalConfiguration, Name=GlobalConfiguration, Type=GLOBAL, Creator=null]
04-09-2025 11:56:06.682 [qtp1413020227-147] INFO  i.c.model.session.WebSession - Project created: [ID=anonymous, Name=anonymous, Type=USER, Creator=null]
04-09-2025 11:56:06.684 [qtp1413020227-147] DEBUG i.c.service.session.CBSessionManager - New web session '***'
04-09-2025 11:56:06.732 [qtp1413020227-84] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getActiveUser [user: anonymous, sessionId: ***]
04-09-2025 11:56:06.766 [qtp1413020227-291] DEBUG i.c.s.websockets.CBEventsWebSocket - EventWebSocket connected to the *** session
04-09-2025 11:56:06.801 [qtp1413020227-85] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getProductInfo [user: anonymous, sessionId: ***]
04-09-2025 11:56:07.138 [qtp1413020227-88] DEBUG i.c.server.graphql.GraphQLEndpoint - API > sessionPermissions [user: anonymous, sessionId: ***]
04-09-2025 11:56:07.156 [qtp1413020227-85] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getServerLicenseStatus [user: anonymous, sessionId: ***]
04-09-2025 11:56:07.205 [qtp1413020227-88] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getProjectList [user: anonymous, sessionId: ***]
04-09-2025 11:56:07.266 [qtp1413020227-98] DEBUG i.c.server.graphql.GraphQLEndpoint - API > navNodeChildren [user: anonymous, sessionId: ***]
04-09-2025 11:56:07.329 [qtp1413020227-147] DEBUG i.c.server.graphql.GraphQLEndpoint - API > navNodeChildren [user: anonymous, sessionId: ***]
04-09-2025 11:56:07.398 [qtp1413020227-290] DEBUG i.c.server.graphql.GraphQLEndpoint - API > navNodeChildren [user: anonymous, sessionId: ***]
04-09-2025 11:56:09.170 [qtp1413020227-101] DEBUG i.c.model.session.WebSession - Update session lifetime *** for user null
04-09-2025 11:56:11.801 [qtp1413020227-88] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getAuthProviders [user: anonymous, sessionId: ***]

The only issue is that requests to:

/api/images/platform:/plugin/org.jkiss.dbeaver.model/icons/tree/key.svg
return 400 Bad Request when running inside the container.

<!-- gh-comment-id:3253373901 --> @maryam4s26 commented on GitHub (Sep 4, 2025): Hi, thanks for your response @dariamarutkina . Here are the requested details: 1. Dockerfile / Build I am using the standard [make-docker-container.sh](https://github.com/dbeaver/cloudbeaver/blob/devel/deploy/docker/make-docker-container.sh) script, but I build the image manually with this command: ```sh docker buildx build --no-cache --platform=linux/amd64 \ -t cloudbeaver:25.1.2 . \ --load --file ./docker/cloudbeaver-ce/Dockerfile ``` 2. Backend status Yes, the backend is running correctly. Other API endpoints (such as /api/health and login) work without any issue. 3. Server logs (when icons fail to load) Here are the relevant logs from the container at the time icons return 400 Bad Request, No obvious errors are shown in the backend logs: ```log 04-09-2025 11:56:06.569 [qtp1413020227-86] DEBUG i.c.server.graphql.GraphQLEndpoint - API > serverConfig [user: null, sessionId: ***] 04-09-2025 11:56:06.638 [qtp1413020227-147] DEBUG i.c.server.graphql.GraphQLEndpoint - API > openSession [user: null, sessionId: ***] 04-09-2025 11:56:06.673 [qtp1413020227-147] DEBUG i.c.model.session.WebUserContext - refresh permissions null *** 04-09-2025 11:56:06.681 [qtp1413020227-147] INFO i.c.model.session.WebSession - Project created: [ID=g_GlobalConfiguration, Name=GlobalConfiguration, Type=GLOBAL, Creator=null] 04-09-2025 11:56:06.682 [qtp1413020227-147] INFO i.c.model.session.WebSession - Project created: [ID=anonymous, Name=anonymous, Type=USER, Creator=null] 04-09-2025 11:56:06.684 [qtp1413020227-147] DEBUG i.c.service.session.CBSessionManager - New web session '***' 04-09-2025 11:56:06.732 [qtp1413020227-84] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getActiveUser [user: anonymous, sessionId: ***] 04-09-2025 11:56:06.766 [qtp1413020227-291] DEBUG i.c.s.websockets.CBEventsWebSocket - EventWebSocket connected to the *** session 04-09-2025 11:56:06.801 [qtp1413020227-85] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getProductInfo [user: anonymous, sessionId: ***] 04-09-2025 11:56:07.138 [qtp1413020227-88] DEBUG i.c.server.graphql.GraphQLEndpoint - API > sessionPermissions [user: anonymous, sessionId: ***] 04-09-2025 11:56:07.156 [qtp1413020227-85] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getServerLicenseStatus [user: anonymous, sessionId: ***] 04-09-2025 11:56:07.205 [qtp1413020227-88] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getProjectList [user: anonymous, sessionId: ***] 04-09-2025 11:56:07.266 [qtp1413020227-98] DEBUG i.c.server.graphql.GraphQLEndpoint - API > navNodeChildren [user: anonymous, sessionId: ***] 04-09-2025 11:56:07.329 [qtp1413020227-147] DEBUG i.c.server.graphql.GraphQLEndpoint - API > navNodeChildren [user: anonymous, sessionId: ***] 04-09-2025 11:56:07.398 [qtp1413020227-290] DEBUG i.c.server.graphql.GraphQLEndpoint - API > navNodeChildren [user: anonymous, sessionId: ***] 04-09-2025 11:56:09.170 [qtp1413020227-101] DEBUG i.c.model.session.WebSession - Update session lifetime *** for user null 04-09-2025 11:56:11.801 [qtp1413020227-88] DEBUG i.c.server.graphql.GraphQLEndpoint - API > getAuthProviders [user: anonymous, sessionId: ***] ``` The only issue is that requests to: `/api/images/platform:/plugin/org.jkiss.dbeaver.model/icons/tree/key.svg` return 400 Bad Request when running inside the container.
Author
Owner

@maryam4s26 commented on GitHub (Sep 4, 2025):

This issue is related to this issue. The 404 icon problem in production occurred because the dependency versions were not correctly specified in the backend build file. During the build, the latest versions of dependencies are cloned and installed, which can cause some required classes or files being missing.

A temporary solution is to specify the exact versions of dependencies in build-backend.sh to ensure compatibility with the CloudBeaver version being built.

DBEAVER_BRANCH="release_25_1_2"

[ ! -d dbeaver ] && git clone --branch $DBEAVER_BRANCH --depth 1 https://github.com/dbeaver/dbeaver.git
[ ! -d dbeaver-common ] && git clone --branch $DBEAVER_BRANCH --depth 1 https://github.com/dbeaver/dbeaver-common.git
[ ! -d dbeaver-jdbc-libsql ] && git clone --branch $DBEAVER_BRANCH --depth 1 https://github.com/dbeaver/dbeaver-jdbc-libsql.git

Ideally, the CloudBeaver repository should build against a specific DBeaver release to ensure all features work correctly.

<!-- gh-comment-id:3254152829 --> @maryam4s26 commented on GitHub (Sep 4, 2025): This issue is related to [this issue](https://github.com/dbeaver/cloudbeaver/issues/3722). The 404 icon problem in production occurred because the dependency versions were not correctly specified in the backend build file. During the build, the latest versions of dependencies are cloned and installed, which can cause some required classes or files being missing. A temporary solution is to specify the exact versions of dependencies in [build-backend.sh](https://github.com/dbeaver/cloudbeaver/blob/devel/deploy/build-backend.sh#L18) to ensure compatibility with the CloudBeaver version being built. ```sh DBEAVER_BRANCH="release_25_1_2" [ ! -d dbeaver ] && git clone --branch $DBEAVER_BRANCH --depth 1 https://github.com/dbeaver/dbeaver.git [ ! -d dbeaver-common ] && git clone --branch $DBEAVER_BRANCH --depth 1 https://github.com/dbeaver/dbeaver-common.git [ ! -d dbeaver-jdbc-libsql ] && git clone --branch $DBEAVER_BRANCH --depth 1 https://github.com/dbeaver/dbeaver-jdbc-libsql.git ``` Ideally, the CloudBeaver repository should build against a specific DBeaver release to ensure all features work correctly.
Author
Owner

@dariamarutkina commented on GitHub (Sep 5, 2025):

Thank you very much for sharing the details 🦫
I’ll close this issue as a duplicate https://github.com/dbeaver/cloudbeaver/issues/3722

<!-- gh-comment-id:3257347579 --> @dariamarutkina commented on GitHub (Sep 5, 2025): Thank you very much for sharing the details 🦫 I’ll close this issue as a duplicate https://github.com/dbeaver/cloudbeaver/issues/3722
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cloudbeaver#1301
No description provided.