Stuck in hell with a custom app that I can't start or delete

I’ve got a really super simple custom app that I launched via YAML. But now it won’t launch or allow me to delete it. Is there a way I can manually delete it? I don’t have any other apps. Can I just delete the .ix-apps directory? When I try to start it it I throws this error:

[EFAULT] Failed 'down' action for 'duplicati' app. Please check /var/log/app_lifecycle.log for more details

the app_lifeceycle.log says this:
[2025/02/22 23:34:47] (ERROR) app_lifecycle.compose_action():56 - Failed 'down' action for 'duplicati' app: service "duplicati" refers to undefined volume duplicati_data: invalid compose project

so when I try to just delete it, it just throws the same errors:

[EFAULT] Failed 'down' action for 'duplicati' app. Please check /var/log/app_lifecycle.log for more details

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 509, in run
    await self.future
  File "/usr/lib/python3/dist-packages/middlewared/job.py", line 556, in __run_body
    rv = await self.middleware.run_in_thread(self.method, *args)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1367, in run_in_thread
    return await self.run_in_executor(io_thread_pool_executor, method, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/main.py", line 1364, in run_in_executor
    return await loop.run_in_executor(pool, functools.partial(method, *args, **kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/service/crud_service.py", line 268, in nf
    rv = func(*args, **kwargs)
         ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 55, in nf
    res = f(*args, **kwargs)
          ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/schema/processor.py", line 183, in nf
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py", line 351, in do_delete
    return self.delete_internal(job, app_name, app_config, options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/crud.py", line 356, in delete_internal
    compose_action(
  File "/usr/lib/python3/dist-packages/middlewared/plugins/apps/compose_utils.py", line 61, in compose_action
    raise CallError(err_msg)
middlewared.service_exception.CallError: [EFAULT] Failed 'down' action for 'duplicati' app. Please check /var/log/app_lifecycle.log for more details

and the app_lifecycle app just says:
[2025/02/22 23:36:37] (ERROR) app_lifecycle.compose_action():56 - Failed 'down' action for 'duplicati' app: service "duplicati" refers to undefined volume duplicati_data: invalid compose project

So can I just whack the ix-apps directory? This shit is super annoying.

Hello :slight_smile:

kill the ix-apps dir ??? I would not, never.

did you try create the duplicati_data volume somewhere on you zpool (perhaps in the ix-apps dir…) and restart the installation of your custom soft ?

Jeff

Bro, I can create a folder all I want, but I can’t do anything to change the state of the app. See above errors.

Can you post your current compose file?

I encountered this issue today.

I solved it by copy and pasting a random docker compose file for a container I wasn’t running on the machine (pihole in my case), into the custom app yaml edit box. Kept the name the same.

Then, in the ‘Apps’ view, I ticked the errant app and chose delete from the pull down box top right of the list. Unticking delete images. It was then gone. Phew!

Can you share the commands you used to do this???

No commands really, just cut and pasted compose yaml from a working container.

If I had the yaml on hand I would post it, but it’s a while ago I did this now and it’s gone.