# Penpot-backend container repeatedly restarting

**URL:** <https://community.penpot.app/t/penpot-backend-container-repeatedly-restarting/7564>\
**Category:** Self-host\
**Created:** [January 15, 2025, 11:48pm UTC](https://community.penpot.app/t/penpot-backend-container-repeatedly-restarting/7564 "2025-01-15T23:48:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![zachmx](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/zachmx/32/6909_2.png) [@zachmx](https://community.penpot.app/u/zachmx)\
**Post date:** [January 15, 2025, 11:48pm UTC](https://community.penpot.app/t/penpot-backend-container-repeatedly-restarting/7564/1 "2025-01-15T23:48:16Z")

</div>

Hi all!

I’m currently trying to install Docker on my unraid server and seem to be having a bit of an issue. I followed all of the instructions, and it seems that most of the containers are stable/communicating except for the penpot-backend container.

Once running the Docker up command the backend container runs for about 20 seconds then exits, restarts, and repeats. After some investigation, I pulled the following log from the backend container.

Any ideas on what the fix might be?

```auto
penpot-backend-1 | + exec /opt/jdk/bin/java -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -Dlog4j2.configurationFile=log4j2.xml -XX:-OmitStackTraceInFastThrow -Dpolyglot.engine.WarnInterpreterOnly=false --enable-preview -jar penpot.jar -m app.main
penpot-backend-1 | [2025-01-15 23:38:50.670] I app.metrics - action="initialize metrics"
penpot-backend-1 | [2025-01-15 23:38:50.687] I app.db - hint="initialize connection pool", name="main", uri="postgresql://penpot-postgres/penpot", read-only=false, credentials=true, min-size=0, max-size=60
penpot-backend-1 | [2025-01-15 23:38:50.709] I app.migrations - hint="running migrations", module=:app.migrations/migrations
penpot-backend-1 | SUMMARY:
penpot-backend-1 | → clojure.lang.ExceptionInfo: Assertion failed on key :app.setup/props when building system (core.cljc:540)
penpot-backend-1 | → java.lang.AssertionError: Assert failed: expected valid key string (setup.clj:78)
penpot-backend-1 | DETAIL:
penpot-backend-1 | → clojure.lang.ExceptionInfo: Assertion failed on key :app.setup/props when building system (core.cljc:540)
penpot-backend-1 | at: integrant.core$wrap_assert_exception.invokeStatic(core.cljc:540)
penpot-backend-1 | integrant.core$wrap_assert_exception.invoke(core.cljc:539)
penpot-backend-1 | integrant.core$wrapped_assert_key.invokeStatic(core.cljc:550)
penpot-backend-1 | integrant.core$wrapped_assert_key.invoke(core.cljc:547)
penpot-backend-1 | integrant.core$build_key.invokeStatic(core.cljc:425)
penpot-backend-1 | integrant.core$build_key.invoke(core.cljc:423)
penpot-backend-1 | clojure.core$partial$fn__5931.invoke(core.clj:2656)
penpot-backend-1 | clojure.core.protocols$fn__8275.invokeStatic(protocols.clj:167)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:123)
penpot-backend-1 | clojure.core.protocols$fn __8229$G__ 8224__8238.invoke(protocols.clj:19)
penpot-backend-1 | clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
penpot-backend-1 | clojure.core.protocols$fn__8262.invokeStatic(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols$fn __8203$G__ 8198__8216.invoke(protocols.clj:13)
penpot-backend-1 | clojure.core$reduce.invokeStatic(core.clj:6965)
penpot-backend-1 | clojure.core$reduce.invoke(core.clj:6947)
penpot-backend-1 | integrant.core$build.invokeStatic(core.cljc:453)
penpot-backend-1 | integrant.core$build.invoke(core.cljc:430)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:675)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:672)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | app.main$start$fn__48565.invoke(main.clj:551)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:154)
penpot-backend-1 | clojure.lang.AFn.applyTo(AFn.java:144)
penpot-backend-1 | clojure.lang.Var.alterRoot(Var.java:310)
penpot-backend-1 | clojure.core$alter_var_root.invokeStatic(core.clj:5563)
penpot-backend-1 | clojure.core$alter_var_root.doInvoke(core.clj:5558)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:428)
penpot-backend-1 | app.main$start.invokeStatic(main.clj:545)
penpot-backend-1 | app.main$start.invoke(main.clj:541)
penpot-backend-1 | app.main$_main.invokeStatic(main.clj:611)
penpot-backend-1 | app.main$_main.doInvoke(main.clj:603)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:400)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:152)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:135)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.core$apply.invokeStatic(core.clj:667)
penpot-backend-1 | clojure.main$main_opt.invokeStatic(main.clj:515)
penpot-backend-1 | clojure.main$main_opt.invoke(main.clj:511)
penpot-backend-1 | clojure.main$main.invokeStatic(main.clj:665)
penpot-backend-1 | clojure.main$main.doInvoke(main.clj:617)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:140)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.main.main(main.java:40)
penpot-backend-1 | dt: {:reason :integrant.core/build-failed-spec,
penpot-backend-1 | :system
penpot-backend-1 | {:app.auth.oidc.providers/github nil,
penpot-backend-1 | :app.db/pool #object[com.zaxxer.hikari.HikariDataSource 0xee8647d "HikariDataSource (main)"],
penpot-backend-1 | :app.auth.oidc.providers/gitlab nil,
penpot-backend-1 | :app.http.client/client
penpot-backend-1 | #object[jdk.internal.net.http.HttpClientFacade 0x7e21e9a1 "jdk.internal.net.http.HttpClientImpl@1edf9a85(1)"],
penpot-backend-1 | :app.email/blacklist nil,
penpot-backend-1 | :app.auth.oidc.providers/generic nil,
penpot-backend-1 | :app.email/whitelist nil,
penpot-backend-1 | :app.migrations/migrations nil,
penpot-backend-1 | ...},
penpot-backend-1 | :key :app.setup/props,
penpot-backend-1 | :value
penpot-backend-1 | {:app.db/pool #object[com.zaxxer.hikari.HikariDataSource 0xee8647d "HikariDataSource (main)"],
penpot-backend-1 | :app.main/migrations nil}}
penpot-backend-1 | 
penpot-backend-1 | → java.lang.AssertionError: Assert failed: expected valid key string (setup.clj:78)
penpot-backend-1 | at: app.setup$eval42321$fn__42322.invoke(setup.clj:78)
penpot-backend-1 | clojure.lang.MultiFn.invoke(MultiFn.java:234)
penpot-backend-1 | integrant.core$wrapped_assert_key.invokeStatic(core.cljc:548)
penpot-backend-1 | integrant.core$wrapped_assert_key.invoke(core.cljc:547)
penpot-backend-1 | integrant.core$build_key.invokeStatic(core.cljc:425)
penpot-backend-1 | integrant.core$build_key.invoke(core.cljc:423)
penpot-backend-1 | clojure.core$partial$fn__5931.invoke(core.clj:2656)
penpot-backend-1 | clojure.core.protocols$fn__8275.invokeStatic(protocols.clj:167)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:123)
penpot-backend-1 | clojure.core.protocols$fn __8229$G__ 8224__8238.invoke(protocols.clj:19)
penpot-backend-1 | clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31)
penpot-backend-1 | clojure.core.protocols$fn__8262.invokeStatic(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols/fn(protocols.clj:74)
penpot-backend-1 | clojure.core.protocols$fn __8203$G__ 8198__8216.invoke(protocols.clj:13)
penpot-backend-1 | clojure.core$reduce.invokeStatic(core.clj:6965)
penpot-backend-1 | clojure.core$reduce.invoke(core.clj:6947)
penpot-backend-1 | integrant.core$build.invokeStatic(core.cljc:453)
penpot-backend-1 | integrant.core$build.invoke(core.cljc:430)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:675)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | integrant.core$init.invokeStatic(core.cljc:672)
penpot-backend-1 | integrant.core$init.invoke(core.cljc:667)
penpot-backend-1 | app.main$start$fn__48565.invoke(main.clj:551)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:154)
penpot-backend-1 | clojure.lang.AFn.applyTo(AFn.java:144)
penpot-backend-1 | clojure.lang.Var.alterRoot(Var.java:310)
penpot-backend-1 | clojure.core$alter_var_root.invokeStatic(core.clj:5563)
penpot-backend-1 | clojure.core$alter_var_root.doInvoke(core.clj:5558)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:428)
penpot-backend-1 | app.main$start.invokeStatic(main.clj:545)
penpot-backend-1 | app.main$start.invoke(main.clj:541)
penpot-backend-1 | app.main$_main.invokeStatic(main.clj:611)
penpot-backend-1 | app.main$_main.doInvoke(main.clj:603)
penpot-backend-1 | clojure.lang.RestFn.invoke(RestFn.java:400)
penpot-backend-1 | clojure.lang.AFn.applyToHelper(AFn.java:152)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:135)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.core$apply.invokeStatic(core.clj:667)
penpot-backend-1 | clojure.main$main_opt.invokeStatic(main.clj:515)
penpot-backend-1 | clojure.main$main_opt.invoke(main.clj:511)
penpot-backend-1 | clojure.main$main.invokeStatic(main.clj:665)
penpot-backend-1 | clojure.main$main.doInvoke(main.clj:617)
penpot-backend-1 | clojure.lang.RestFn.applyTo(RestFn.java:140)
penpot-backend-1 | clojure.lang.Var.applyTo(Var.java:707)
penpot-backend-1 | clojure.main.main(main.java:40)
penpot-backend-1 | 
penpot-backend-1 exited with code 0

```

---

<div class="post-metadata">

**Author:** ![zachmx](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/zachmx/32/6909_2.png) [@zachmx](https://community.penpot.app/u/zachmx)\
**Post date:** [January 19, 2025, 8:20pm UTC](https://community.penpot.app/t/penpot-backend-container-repeatedly-restarting/7564/2 "2025-01-19T20:20:19Z")

</div>

Hate double posting, but still haven’t had any luck with this.

Anyone able to help?

---

<div class="post-metadata">

**Author:** ![grodrigo](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/grodrigo/32/6979_2.png) [@grodrigo](https://community.penpot.app/u/grodrigo)\
**Post date:** [January 21, 2025, 12:02am UTC](https://community.penpot.app/t/penpot-backend-container-repeatedly-restarting/7564/3 "2025-01-21T00:02:46Z")

</div>

I ran into the same issue. I’m not sure why this happens, but on a fresh install with the latest Docker Hub image (2.4.1), the container keeps restarting in a loop, just as you described. However, when I switch the backend image to 2.3.3, it starts without any issues.

Both the 2.4.0 and 2.4.1 images result in a gateway error and a key-related error: `:app.setup/props`.

I’m not sure if a new environment is required for deployment or what might be causing this, but this workaround can help as a temporary solution.

---

<div class="post-metadata">

**Author:** ![zachmx](https://dub1.discourse-cdn.com/flex017/user_avatar/community.penpot.app/zachmx/32/6909_2.png) [@zachmx](https://community.penpot.app/u/zachmx)\
**Post date:** [January 21, 2025, 1:32am UTC](https://community.penpot.app/t/penpot-backend-container-repeatedly-restarting/7564/4 "2025-01-21T01:32:08Z")

</div>

Amazing. This fixed the issue. Thanks for the recommendation!
