Subworkflow caller receives "No fields - item(s) exist, but they're empty," but subworkflow did return data

<!-- Hey! The fastest way to find solutions is by using the 🔎 search function at the upper right. If your question hasn't been asked before, please follow the template below. Skip the questions that are not relevant to you. -->

Describe the problem/error/question

Subworkflow creates data to return to caller. Caller never receives it.

What is the error message (if any)?

No fields - item(s) exist, but they’re empty

Please share your workflow

Share the output returned by the last node

[
{
“data”: {
“id”: “866e530a-48b5-47df-baa8-e0c6bfc5364c”,
“job_id”: null,
“status”: “finished”,
“credits”: 0,
“code”: null,
“message”: null,
“percent”: 100,
“operation”: “export/url”,
“result”: {
“files”: [
{
“filename”: “cordless-vacuums-for-seniors-facebook-recvxjycgcv1usc6d.jpg”,
“size”: 182622,
“url”: “https://us-east.storage.cloudconvert.com/tasks/866e530a-48b5-47df-baa8-e0c6bfc5364c/cordless-vacuums-for-seniors-facebook-recvxjycgcv1usc6d.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=cloudconvert-production%2F20251127%2Fva%2Fs3%2Faws4_request&X-Amz-Date=20251127T054206Z&X-Amz-Expires=86400&X-Amz-Signature=7e1eb3c4e36ca9d3cbd41bc7a1c702e504e0b4cc8489d2ade921634cad21dd31&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3D"cordless-vacuums-for-seniors-facebook-recvxjycgcv1usc6d.jpg"&response-content-type=image%2Fjpeg&x-id=GetObject”
}
]
},
“created_at”: “2025-11-27T05:42:06+00:00”,
“started_at”: “2025-11-27T05:42:06+00:00”,
“ended_at”: “2025-11-27T05:42:06+00:00”,
“retry_of_task_id”: null,
“copy_of_task_id”: null,
“user_id”: 70428219,
“priority”: 10,
“host_name”: “mabelle”,
“storage”: “ceph-va”,
“region”: “us-east”,
“depends_on_task_ids”: [
“74130519-72f3-4b0a-b250-03c0acc1d9fd”
],
“links”: {
“self”: “https://api.cloudconvert.com/v2/tasks/866e530a-48b5-47df-baa8-e0c6bfc5364c”
}
}
}
]

Information on your n8n setup

  • n8n version: Version 1.121.3
  • Database (default: SQLite): airtable
  • n8n EXECUTIONS_PROCESS setting (default: own, main): default
  • Running n8n via (Docker, npm, n8n cloud, desktop app): docker
  • Operating system: Ubuntu 24.04
    

I see you’re using the CloudConvert API but I was wondering if you had thought of using the n8n CloudConvert nodespublished by CloudConvert themselves? It may also make your workflow run a little faster because I can see that you’ve added some fixed wait nodes but it might be better to instead wait for CloudConvert’s API to respond when it has completed.

If you’re going to use CloudConvert’s APIs directly when you convert a file, calling the convert API will respond with the created task:

Returns

The created task. You can find details about the task model response in the documentation about the show tasks endpoint.

However, in the task documentation is says that

The CloudConvert API is asynchronous by default. When starting a task, the API responds immediately and you either receive the completed task via webhook notification or via polling.

That could mean that when you call the tasks endpoint, that task might not have actualy completed, so you should have a check and loop back to the Wait and get result node again if the task hasn’t actually completed.

So if you’re using the HTTP nodes, you may want to add some additional if statements that check the status of each task has completed before moving on. Here’s an example:

:information_source: You may want to think a little how you add your checks. Consider checking the status of a task then adding the delay (rather than the othe way round that you have now).

Also that check seems to be repeated so that could also be another sub-workflow.

:warning: if you think that this solved your problem, please mark this as Solved! :smiling_cat_with_heart_eyes:

Thank you for this detailed answer.

The reason I didn’t use cloud convert’s n8n node was only that in order to understand the process, I reached out to the net for examples. The one I found that worked did things the way I’m doing them in my example.

Without addressing the other points which are good and interesting regarding Cloud Convert, I discovered that doing an http request created the same symptom.

So the first http request in the subworkflow does a POST. If I run just that in the subworkflow, the subworkflow does not return with data. For example, you could add a set node after the http request, put some data in it, and have it be the last item executed before returning. In this scenario, too, the subworkflow fails to return the set node data.

So this is a subworkflow data passing issue rather than a cloud convert issue.

Thanks for clarifying. I think I’m having a little trouble in understanding the problem, but I think what I understand is that:

  1. You have a parent workflow that calls this subworkflow (lets call it cloudconvert).
  2. When the subworkflow contains just a POST request, it the subworkflow does not return any data.
  3. When the subworkflow contains all other nodes including a final Set node where the Always Output Data is enabled it does not return data.

So the only reason I can think of that the subworkflow is not returning data is because when called from the parent workflow it actually failed, but then you would see a failure on the Call sub-workflow node like this:

I think to help diagnose this further can you provide the parent workflow?

And can you provide screenshots of the parent execution as well as the linked child execution?

1 Like

I think I figured it out, I’ll leave it here in detail for the next person who makes this mistake :).

I believe it wasn’t returning data because I had filters on branches that I wanted “off” for testing.

Coming from a background which does not include executing code behind barriers like this, I forgot that the filters themselves were executing.

So:

START

→ path 1

→ path 2

→ path 3

Where path 2 and path 3 are behind filters, and path 1 is the testing branch.

The last thing to execute is the filter on path 3, and it has no data to return.

Thanks all for your attention, much appreciated.

1 Like

Gede’s solution wins because it was sufficient to make me show my work which allowed me to see my error.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.