Can't delete stack if compose.yml has some error in it
β οΈ Please verify that this bug has NOT been reported before.
- [X] I checked and didn't find similar issue
π‘οΈ Security Policy
- [X] I agree to have read this project Security Policy
Description
I started to create a stack but decided I didn't want it so I tried to delete it. Never deployed it. It wouldn't let me because it looks like it tries to validate the text before allowing me to delete it. It still had some <insert/path/here:/path/to/folder> entries.
π Reproduction steps
- Paste in some default compose
services:
tinymediamanager:
image: tinymediamanager/tinymediamanager:latest
container_name: tinymediamanager
environment:
- USER_ID=1000
- GROUP_ID=100
- ALLOW_DIRECT_VNC=true
- LC_ALL=en_US.UTF-8 # force UTF8
- LANG=en_US.UTF-8 # force UTF8
- PASSWORD=<password>
volumes:
- </path/to/local/data/>:/data
- </path/to/movies>:/media/movies
- </path/to/addons/>:/media/tv_shows
ports:
- 5900:5900 # VNC port
- 4000:4000 # Webinterface
restart: unless-stopped
- Save.
- Attempt to delete.
π Expected behavior
Would like to delete the file without having to check if the compose is valid. If I don't want to the stack it shouldn't need to be valid unless I'm missing something.
π Actual Behavior
Fails to delete with error.
Dockge Version
1.4.2
π» Operating System and Arch
Trunas Custom App
π Browser
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
π Docker Version
No response
π© NodeJS Version
No response
π Relevant log output
service "tinymediamanager" refers to undefined volume </path/to/local/data/>: invalid compose project
Same issue here. "validating /opt/stacks/aio/compose.yaml: services.nextcloud-aio-mastercontainer.environment.0 must be a string"
Stacks don't appear in Portainer, what gives?
As a simple solution.
Remove the stacks folder
You can also just replace the compose.yaml with a working one and then delete the stack. Still, it would be nice to be able to delete a βstackβ with no compose.yaml and .env or one that doesnβt work.
@christmaswreath I agree.
Though this can cause an issue of hanging containers.
Yep, having this issue as well. Can't delete it, change it, or anything if Dockage gets confused. It says it's maintaining it and inactive, but for some reason has no control over a stopped or ended container...
can confirm this is still an issue
can confirm this is still an issue
fixed this by switching the compose file with the immich one (or any working one for that matter) and deleting the stack
for example:
services:
mumble-server:
image: mumblevoip/mumble-server:latest
container_name: mumble-server
hostname: mumble-server
restart: on-failure
ports:
- 64738:64738
- 64738:64738/udp
- 6502:6502
environment:
- MUMBLE_SUPERUSER_PASSWORD=rsa3^zy9^ygmt43^VRD6F$ # not real password used anywhere
networks: {}
I still have this issue on latest docker version of louislam/dockge
Either with an incorrect compose
2025-11-02T01:08:19Z [GETSERVICESTATUSLIST] ERROR: Error: Process exited with code 1
at ChildProcess.done (/app/node_modules/promisify-child-process/index.cjs:70:19)
at ChildProcess.emit (node:events:518:28)
at maybeClose (node:internal/child_process:1101:16)
at ChildProcess._handle.onexit (node:internal/child_process:304:5) {
code: 1,
signal: null,
stdout: '',
stderr: 'time="2025-11-02T01:08:19Z" level=warning msg="The \\"KOMODO_DB_USERNAME\\" variable is not set. Defaulting to a blank string."\n' +
'time="2025-11-02T01:08:19Z" level=warning msg="The \\"KOMODO_DB_PASSWORD\\" variable is not set. Defaulting to a blank string."\n' +
'time="2025-11-02T01:08:19Z" level=warning msg="The \\"KOMODO_DB_USERNAME\\" variable is not set. Defaulting to a blank string."\n' +
'time="2025-11-02T01:08:19Z" level=warning msg="The \\"KOMODO_DB_PASSWORD\\" variable is not set. Defaulting to a blank string."\n' +
'time="2025-11-02T01:08:19Z" level=warning msg="The \\"COMPOSE_KOMODO_BACKUPS_PATH\\" variable is not set. Defaulting to a blank string."\n' +
'time="2025-11-02T01:08:19Z" level=warning msg="The \\"KOMODO_DB_USERNAME\\" variable is not set. Defaulting to a blank string."\n' +
'time="2025-11-02T01:08:19Z" level=warning msg="The \\"KOMODO_DB_PASSWORD\\" variable is not set. Defaulting to a blank string."\n' +
'invalid spec: :/backups: empty section between colons\n'
or an empty one
2025-11-02T22:51:33Z [GETSERVICESTATUSLIST] ERROR: Error: Process exited with code 1
at ChildProcess.done (/app/node_modules/promisify-child-process/index.cjs:70:19)
at ChildProcess.emit (node:events:518:28)
at maybeClose (node:internal/child_process:1101:16)
at Socket.<anonymous> (node:internal/child_process:456:11)
at Socket.emit (node:events:518:28)
at Pipe.<anonymous> (node:net:351:12) {
code: 1,
signal: null,
stdout: '',
stderr: 'empty compose file\n'
You could probably just make it so that the docker compose changes to a correct one and then deletes if there's an issue.