jreyesr/n8n-nodes-carbonejs

ERROR: The "data" argument must be of type string

Closed this issue · 5 comments

Hello! Thank you for doing this. I've encountered an error

"ERROR: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received an instance of Promise."

Everything works fine on one server, but on the second one, it throws this error. What can be done about it?
image

Hello @altvk88, and thanks for reporting this! I've tried to replicate the error, but it Seems To Work Fine For Me (TM). In order to isolate the problem, could you please answer the following questions (or as many of them as you can, in any case)?

  • Which version of N8N are you using? Is it the same across both servers?

  • Which version of the plugin are you using? You can check it on http://your_instance:port/settings/community-nodes, look for the one called n8n-nodes-carbonejs

  • How was N8N installed (native/NPM install, or Docker)? How was the plugin installed (npm install, using the UI, when building the Docker image)?

  • Could you provide the full error? It's below the red ERROR message that is on the screenshot that you posted: click the Details arrow and it'll expand into a full traceback

  • Which parameter values are you using? I assume that you're using the Render operation, so it should have Context, Property Name and Property Name Out fields (they're cropped in the screenshot). Could you provide a screenshot that displays the entire node's configuration, if possible? Something like this would be great:

    image

Finally, would you mind importing this JSON file, running it and reporting what happens? It's a simple workflow that downloads an example file from Carbone's repo and renders it. I've just tested it and it seems to work (on a just-created Docker N8N install running v1.25.1 of N8N and v1.1.0 of the plugin), and I'm curious to see what would happen on your servers:

image

Again, thanks for your report! With that information I should have a better idea of what is happening.

Hello! Thanks for the quick response.

  1. Version N8N 1.24.1 on both servers.
  2. Plugin version 1.10.0 on both servers.
  3. N8N is installed in a Docker container, and the plugin is added through n8n-communite-node in the N8N interface on both servers.
  4. Got it, i'm using Render. I ran the imported workflow, but the result is the same. Here is a screenshot of the error.
    image
    If there's any additional information or assistance you need to identify and resolve the issue, feel free to let me know.

Hello again @altvk88! I've prepared a new temporary version of the plugin, v1.1.1-issue4, which should fix the issue (see #5 for the code that has changed).

Would you mind installing the new version of the plugin, restarting N8N, and then running the workflows that failed again? To do so, please uninstall the plugin using the Community Nodes UI, then click the Install button, and provide the following package name: n8n-nodes-carbonejs@1.1.1-issue4 (I've just discovered that you can force installation of a particular NPM package version!). Once the plugin is installed, don't click the Update button (N8N will think that v1.1.0, which you have now and has the issue, is more recent than this new version).

image

Then, restart your N8N server with docker restart <container_name> (this seems to be necessary, otherwise it continued failing for me, it seemed to keep using the old version even though I uninstalled it beforehand). Then, run the workflow as you've done already and verify if it now completes successfully (it should)

Also, when you run the workflows with the updated plugin, could you also look at the logs that N8N emits and attach them here? Since you're using Docker, that should be docker logs <container_name>. For example, these are my logs: I restarted the N8N Docker image and manually ran the workflow that I provided above.

n8n-n8n-1    | User settings loaded from: /home/node/.n8n/config
n8n-n8n-1    | Initializing n8n process
n8n-n8n-1    | n8n ready on 0.0.0.0, port 5678
n8n-n8n-1    | Version: 1.26.0
n8n-n8n-1    | 
n8n-n8n-1    | Editor is now accessible via:
n8n-n8n-1    | http://localhost:5678/
n8n-n8n-1    | Reading directly into buffer, size=62288
n8n-n8n-1    | (node:7) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
n8n-n8n-1    | (Use `node --trace-deprecation ...` to show where the warning was created)
n8n-n8n-1    | Failed to renew license: renewal failed because current cert is not initialized

In particular, there should be either a line that says "Reading directly into buffer, size=..." (which I have above) or a line that says "Reading from file, id=...". That line should be just before a DeprecationWarning, as you can see. Could you provide that section of the output, please? That's just to confirm my theory of what caused this bug.

Thanks for your assistance!

Greetings!
Yes, the new plugin version helped, and the workflow completed without errors. Initially, I forgot to restart the container, but then realized my mistake :D
The log looks like this:

root@oqpdgfbciz:/opt/beget/n8n# docker logs n8n-n8n-1
Last session crashed
Initializing n8n process
n8n ready on 0.0.0.0, port 5678
Version: 1.24.1

Editor is now accessible via:
https://localhost:5678/
Reading from file, id=filesystem-v2:workflows/yyBx036adULz9Uvz/executions/498/binary_data/00bf32b8-ba54-4dca-ac13-25a063f84ed4
(node:7) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
(Use node --trace-deprecation ... to show where the warning was created)

I am very grateful to you for your help and for the plugin itself; it was a great help to me.
And I have attached the n8n event log, just in case you might need it.
n8nEventLog-1.log

Great to hear that! I've released v1.1.1, so you may want to update or uninstall/reinstall n8n-nodes-carbonejs to get the new official version. With that, I believe that this issue is fixed.

Thanks a lot for your help diagnosing the issue, and good luck automating stuff!