Cannot call/invoke remote workflow using REST API (HTTP Code 403)

Hi all,

we are currently migrating to KNIME Server 4.13 and Executor 4.4.2 from an older version of both platforms and there seems to be a problem emerging with invoking remote workflow. To make this problem more comprehensive, here’s the intuition of my workflows:

  • For the time being, I’ve got 2 Workflows A and B, both are deployed on the KNIME server. Workflow A requires users’ interactions and performs classic ETL. At the end, it would then pass some parameters to and invoke the second Workflow (Workflow B).

For this specific purpose, my workaround is to compress these parameters in a JSON Column and then pass the whole thing to the node “Call Remote Workflow (Row Based)” to call Workflow B using REST API. After providing the node with our server’s REST interface (something like https://xxxxxx:8080/knime/rest) and of course the necessary credentials, I clicked on the “List available workflows” and the node returned the “Could not list workflows: HTTP Status 403” error.

I assume it means access to the requested resource is forbidden. The server understood the request, but will not fulfill it. Since the invoking workflow works perfectly fine in the older server, I want to ask if there were any changes to the REST API interface or what could be done in this situation and how could we debug from the server side.

Cheers,
Hieu.

Hi Hieu,

I’m very sorry for the late reply.
I have recently seen a similar case. There, the issue was that the workflows and workflow groups (folders) all inherited permissions. However, when the workflow repository was copied, hidden files and folders (that include permissions.json files) were skipped. (e.g. cp /old_folder/* /newfolder/ may not copy hidden files/folders.)

If this happened to you, you may now have an installation where the root folder (and/or subfolders) don’t have correct permissions.

Could you check that the workflow you are calling (and/or higher up folders) have the correct owner, correct group rights, or that world can read/write/execute the workflow? You can do so via Analytics Platform, connecting to the server, and right-clicking folders → permissions.

Should the permissions look wrong (e.g. no owner is set) and if development hasn’t continued much by now, it may be an option to copy the old workflows again, in particular the .metainfo folders and their contents in each folder. Please shutdown KNIME Server (and Executor) before copying files in the background.

Kind regards
Marvin

3 Likes

Hi Marvin.
Thank you for your constructive reply. However our permissions were set visible for World to read/write/execute, that means theoretically everyone can read/write/execute the workflow.

Can you confirm which version of KNIME AP you are running. Our API has changed from 4.12 to 4.13 and if you are running a KNIME AP version lower than the 4.4.2 executor there may be some small issues that could cause this problem.

You can also test the REST API using our swagger page to test potentially outside of KNIME to make sure that the API is working as expected.

Hello ztrubow,

Like I indicated above, we’re using the Analytics Platform Version 4.4.2 and Knime Server version 4.13.

Hi @hml24,

Can you provide us with a few more details so we can try to see if this is a known issue:

  1. When you open up the “Call Remote Workflow” output, do you see the columns being properly displayed with the right REST api calls? Would you be able to provide us with the example api call?
  2. If you do a curl to the requested workflow B using the outputted table from , do you get the same error?
  3. Could you send us a screen shot of your configured “Call Remote Workflow (Row Based)” node?

Thanks,
Zack

1 Like