I am losing my sanity

Describe the problem/error/question

When requesting products from shopify usnig http requests, anything amount under 54 products requested returns chinese characters instead of greek. Anything 54 and over returns greek correctly.

Please share your workflow

Share the output returned by the last node

54 products requested:

[
  {
    "data": {
      "products": {
        "pageInfo": {
          "hasNextPage": true,
          "endCursor": "eyJsYXN0X2lkIjo3NjkzNzg2NDQ4MDk3LCJsYXN0X3ZhbHVlIjoiNzY5Mzc4NjQ0ODA5NyJ9"
        },
        "nodes": [
          {
            "id": "gid://shopify/Product/7693779239137",
            "title": "Σετ 74 σφραγίδες - κουπάτ - γράμματα κεφαλαία, πεζά, νούμερα και σύμβολα",

2 products requested:

[
  {
    "data": {
      "products": {
        "pageInfo": {
          "hasNextPage": true,
          "endCursor": "eyJsYXN0X2lkIjo3NjkzNzc5NTk5NTg1LCJsYXN0X3ZhbHVlIjoiNzY5Mzc3OTU5OTU4NSJ9"
        },
        "nodes": [
          {
            "id": "gid://shopify/Product/7693779239137",
            "title": "危蔚蟿 74 蟽蠁蟻伪纬委未蔚蟼 - 魏慰蠀蟺维蟿聽- 纬蟻维渭渭伪蟿伪 魏蔚蠁伪位伪委伪, 蟺蔚味维, 谓慰蠉渭蔚蟻伪 魏伪喂 蟽蠉渭尾慰位伪",

Information on your n8n setup

  • n8n version: just created the account, so by default i presume latest
  • Database (default: SQLite): just created the account, so default i assume
  • n8n EXECUTIONS_PROCESS setting (default: own, main): just created the account, so default i assume
  • Running n8n via (Docker, npm, n8n cloud, desktop app): cloud
  • Operating system: windows

Hi @Peter_Koutsos, welcome!

Don’t worry you’re okay :grinning_face_with_smiling_eyes:

What happens if you set these headers?

Content-Type: application/json
Accept: application/json
Accept-Encoding: gzip

Thanks for the answer. Nothing changes unfortunately.

Well, I’m with you now bro :smiley:

Hope someone can help, since I don’t have access to a Shopify account atm to play with..

maybe also try the built-in node?

Thanks. I wanted to get data which the premade node does not offer, like seo title, seo description and metafields…

**:warning: This is A.I Answer. hope it helps. **

Here’s what’s going on in your n8n issue (“I am losing my sanity”) and how you can fix it:

:magnifying_glass_tilted_left: What’s the problem?

You’re making HTTP requests to Shopify inside n8n and sometimes the product titles come back as Chinese-looking gibberish, instead of Greek. This happens when the number of products requested is less than 54 — but when you request 54 or more products, the Greek text returns normally. (n8n Community)

Example outputs:

Products Requested Result
2 危蔚蟿 74 蟽蠁蟻… (garbled)
54 `“Σετ 74 σφραγίδες…” (proper Greek)

This clearly points to a character encoding issue rather than a Shopify bug.


:white_check_mark: Likely Root Cause: Encoding/charset handling in HTTP Request

When Shopify returns text it normally uses UTF-8 encoding. However n8n’s HTTP Request node might be mis-interpreting the response’s character set in some cases — especially if:

  • the response does not explicitly include a Content-Type: charset=utf-8 header
  • the HTTP request node isn’t configured to force UTF-8 decoding
  • the payload is being read as binary or default system encoding

This can happen on smaller responses where Shopify might use slightly different headers. The weird characters you’re seeing are almost certainly UTF-8 being misread as another encoding.


:hammer_and_wrench: How to Fix / Workaround

:white_check_mark: 1. Force UTF-8 parsing

In your HTTP Request node:

  1. Set Response FormatString

  2. Add header:

    Accept-Charset: utf-8
    
  3. If you have control over headers, also add:

    Content-Type: application/json; charset=utf-8
    

This explicitly tells n8n to parse the response as UTF-8.


:white_check_mark: 2. Try reading raw binary and converting manually

Instead of interpreting it as JSON/text immediately, you can do:

  1. In HTTP Request node:

    • Response FormatBuffer/Binary
  2. Pass buffer into a Function Node:

    const buf = items[0].binary.data; // adjust if different key
    const str = buf.toString('utf8'); // enforce UTF-8
    return [{ json: JSON.parse(str) }];
    

    This ensures the text is decoded as UTF-8 manually.


:white_check_mark: 3. Check Shopify API pagination

If you’re requesting fewer products via pagination (e.g., cursors), the API might return slightly different content or headers. Make sure both requests use the same Accept headers as in the working larger request.


:pushpin: Extra Tips

:check_mark: Use the latest Shopify GraphQL / REST endpoints — older ones can sometimes omit proper charset headers.
:check_mark: If possible, test the same requests using curl and inspect the raw headers — this will confirm whether the charset header is missing.
:check_mark: Always set your HTTP Request node to explicitly expect UTF-8 when dealing with Unicode text.


:pushpin: Summary

Your issue is not a bug in Shopify or n8n per se, but almost certainly a charset interpretation problem:

:white_check_mark: Shopify sends UTF-8 — but the smaller API response sometimes doesn’t include charset info
:white_check_mark: n8n defaults to another encoding when charset is missing
:white_check_mark: You can fix it by forcing UTF-8 parsing either via headers or manual decoding. (n8n Community)


If you want, share the exact HTTP Request node config and response headers you’re seeing and I can tailor the steps specifically to your workflow.

Source: https://chatgpt.com/share/696925ea-1264-800c-8cec-22fafd520907

I had the same issue with http request node. Tried many things, sometimes they worked, but only temporary. Today I tried this, it worked:

In the HTTP Request node, at the bottom in the “Options” section, add the option: “Response”. Then select response format: JSON (instead of “Autodetect”).

This fixed the Chinese character issue for me.

Edit: And I deleted the Accept headers, I don’t know if it had any effect but just wanted to add this.