Geometry Backend - Export Error - Generic jwt validation error


I’m using the new Geometry backend API to export documents from ShapeDiver but I’m having Trouble

1/ I managed to get a session ID throw

2/ I managed to get parameters and exports ids

3/ When I PUT the API to get export file, I do get an url, but it says
{“error”:“SdJwtValidationError”,“desc”:“Generic jwt validation error”,“message”:“Invalid token”}

URL : “” + sessionID + “/export”
Body :


Result URL :

ALSO, you have en error in your documentation : Geometry Backend

Should be /export instead of /output

What do I have to do about JWT validation error?

Which request is it that fails with this error? Please send an example of the code you are using.

Many thanks for the hint! The fix will be deployed later today.

The error appears when I try to open the URL of the generated document :

@olivia3 it’s unclear to me why you would get a SdJwtValidationError error when accessing the download link. Please share the code you use to make the request, at least the relevant pieces.

Here is the code in Zoho Deluge Script

1/ Get the session ID : Working

backEndTicket = "1111111111";
shapeDiverUrl = '';
header_data = Map();
//Get a Session ID
session = invokeurl
	url :shapeDiverUrl + "api/v2/ticket/" + backEndTicket
	type :POST
sessionID = session.get("sessionId");

2/ Get Parameters and Exports ID : Working

parametres = session.get("parameters");
for each  param in parametres
	if(param.get("name") == "SHEET_WIDTH")
		idParamLargeur = param.get("id");
	if(param.get("name") == "SHEET_HEIGHT")
		idParamHauteur = param.get("id");
	if(param.get("name") == "GENERATE_DXF_FILE")
		idParamGenerateDXFFile = param.get("id");
	if(param.get("name") == "BOUNDARIE_TOP")
		idParamBordureHaut = param.get("id");
	if(param.get("name") == "BOUNDARIE_BOTTOM")
		idParamBordureBas = param.get("id");
	if(param.get("name") == "BOUNDARIE_LEFT")
		idParamBordureGauche = param.get("id");
	if(param.get("name") == "BOUNDARIE_RIGHT")
		idParamBordureDroite = param.get("id");
exports = session.get("exports");
//info exports;
for each  export in exports
	if(export.get("name") == "export_dxf")
		idExportDXF = export.get("id");
	if(export.get("name") == "export_pdf")
		idExportPDF = export.get("id");

3/ Call the API to generate DXF Export

parameters = Map();
body = Map();
generateFile = invokeurl
	url :shapeDiverUrl + "api/v2/session/" + sessionID + "/export"
	type :PUT

Result of the call

{"version":"2.2.1","actions":[{"name":"default","title":"Default model","href":"","method":"GET"},{"name":"close","title":"Close session","href":"","method":"POST"},{"name":"export-cache","title":"Get cached export","href":"","template":"export-cache-request","method":"PUT"}],"exports":{"71d70e484a4b796a871fd69511ce3b8c":{"id":"71d70e484a4b796a871fd69511ce3b8c","name":"export_dxf","type":"download","uid":"53ec9f8684f03f3ad78f909ef8e9a4fe","version":"e056c66e466d86dc09d3e1e67dc5349a","order":0,"tooltip":"","displayname":"","hidden":false,"status_computation":"success","status_collect":"success","filename":"SPM20028-AGREGA-1200x800","content":[{"href":"","size":408536,"format":"dxf"}]}}}

The document is well generated, but when I open the given href in a window, it says
{“error”:“SdJwtValidationError”,“desc”:“Generic jwt validation error”,“message”:“Invalid token”}

I just found something very strange.

The export of the document is not working on Chrome but working on Firefox…
I have the same from another ShapeDiver, when I use directly from the platform…
So the problem is not in my code.

On a same ShapeDiver file, my collegue (with same login) can download DXF on Chrome, me not.
Only working on Firefox

That’s very strange !

It was working well before


Please let me know whether I understood correctly:

  • The download link is working fine when you use it in Firefox
  • The download link is working fine for your colleague in Chrome
  • It is not working for you in Chrome

Maybe your Chrome is including an Authorization header as part of the request to download the exported file. I am not sure why it would do that, but that would explain the problem. You can debug this using the network tab of Chrome’s developer tools.