Error launching (Designer) application: HttpResponseException: 400: Illegal character SPACE=' '

My Ignition version is 8.1.5 and I’m using SDK version 8.1.0
I modified the Ignition Perspective SDK example, made a successful build and successfully installed it on the gateway (nothing unusual in the gateway logs). I get this when I try to launch the Designer:

image

Here’s the launch error log file (launch_error_2021-08-10_10-37-25.log (19.6 KB)).
It seems to fail at (or before?) the end:
Launch failed on step “DownloadJarsStep” with error:

com.inductiveautomation.ignition.client.launch.steps.HttpResponseException: 400: Illegal character SPACE=' '
	at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep.downloadJar(DownloadJarsStep.java:140)
	at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep$DownloadJarsAction.run(DownloadJarsStep.java:77)
	at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep$DownloadJarsAction.run(DownloadJarsStep.java:58)
	at com.inductiveautomation.ignition.client.launch.steps.AbstractLaunchStep.runLockedAction(AbstractLaunchStep.java:95)
	at com.inductiveautomation.ignition.client.launch.steps.BaseStep.runLockedAction(BaseStep.java:21)
	at com.inductiveautomation.ignition.client.launch.steps.DownloadJarsStep.run(DownloadJarsStep.java:55)
	at com.inductiveautomation.ignition.client.launch.AbstractStepRunner.run(AbstractStepRunner.java:33)
	at java.base/java.lang.Thread.run(Unknown Source)

So I’m guessing I incorrectly modified some parameter or value and include a space where there should be one? I’ll start looking. Any suggestion where to start (I refactors all the ‘fakester’ stuff and copied/modified the dancing banana component with a different image).

Thank you!

Looks like maybe something about the module/JAR names you used:

Downloading "http://localhost:8088/system/jar/mSEI OC HOU Persp Comps/__3670715831__common.jar" (timeout=60000)...
Connect successful.
Download attempt #0 for file __3670715831__common.jar failed.

Would you believe that I found the problem?

In the ‘common’ project, the components .java file (what used to be Image.java) in the example, I had spaces in the module id and changed them to underscores:
Was: public static final String MODULE_ID = "SEI OC HOU Persp Comps";
Is now: public static final String MODULE_ID = "SEI_OC_HOU_Persp_Comps";

In the outer most (example project) build.gradle file I did the same thing:
Was: moduleId "SEI OC HOU Persp Comps";
Is now: moduleId "SEI_OC_HOU_Persp_Comps";

As I understand it, the module id must be identical in both places and can’t have any space characters. I believe this is similar to the COMPONENT_ID and COMPONENT_TYPE in the components .java file and in the components .tsx file, they must be identical.

Sound about right?

Yes, sounds about right.

Conventionally the module ID should be a dot-separated reverse-domain-notation string, e.g. com.inductiveautomation.opcua or com.edwardfowler.my-component. But you can use whatever you’d like, as long as it doesn’t have whitespace, apparently.

1 Like