Random error: Form failure: The context path is either empty or not defined


#1

I see other posts about this error, but here is a different situation.

Initial conditions:

  • using camunda community

  • using camunda-bpm-spring-boot-starter-webapp

    org.camunda.bpm.springboot
    camunda-bpm-spring-boot-starter-webapp
    3.0.0

  • start/stop/deploy as a spring boot app where parent is:

    org.springframework.boot
    spring-boot-starter-parent
    2.0.5.RELEASE

  • using default paths for embeded forms and ok on disk/path:
    embedded:app:forms/[…].html (in bpm file)

Problem:
After the application starts, it works well (initial form, also user-tasks with embeded forms), but, after a while, the application forgests or it doesn’t detect ok the contextPath. After the application is restarted, it work ok again. The json from the backend is:

  • when it DOES NOT works:
    {“key”:“embedded:app:forms/[hidden-for-brevity].html”,“contextPath”:null}
  • when it works:
    {“key”:“embedded:app:forms/[hidden-for-brevity].html”,“contextPath”:"/"}

Pls help! I’ve read many posts and please comment only if you know/have the (same) problem (it is not about deploying as a war, or through api etc.).


#2

Does it have anything to do with versioning plus deployment on separate machines (the codebase is not replicated, but the database is shared…) ?


#3

Hi,

If you request the form key from a server where the process application is not deployed, then the engine cannot resolve the context path. Is that the case here?

Cheers,
Thorben


#4

Hi, thank you for your reply! It might be case (at least it seams it is the case but I will make more tests to isolate this behaviour).

Could you please explain me if this is the case also for other resources (eg Delegate tasks / User-Task External Form)?

If so, how it should work the deploy on several machines (through Docker image?)? I am asking this because there will be a moment (even if is a few seconds or minutes) where an application does not have the latest code… and this error will be raised (because the process definition on disk is not the latest one, even if in the database exists).