HTTP Request node hangs indefinitely when fetching raw JSON from GitLab API

I am building a workflow to automate hyperlink updates in a GitLab repository.

Google Sheets TriggerFetch content from GitLabReplace stringCreate Merge Request

My HTTP Request node (Fetch File from GitLab) stays “Executing” infinitely. It never returns an error, but it never completes.

Setup

  • Predefined Credential (GitLab API) using a Personal Access Token.

  • URL: https://gitlab.example-company.com/api/v4/projects/\[PROJECT_ID\]/repository/files/{{ encodeURIComponent($('Trigger Node').item.json.PathColumn.replace('root-folder/', '')) }}/raw?ref=master.

  • Method: GET

  • Response Format: JSON

Here’s what I’ve tried:

  1. Manually visiting the resolved URL in a browser (or curling) with the same token, returns a clean JSON array immediately: [“https://link1.com”, “https://link2.com”].

  2. The URI logged in the n8n console is correct and matches my manual test: …/repository/files/jx008%2Fcs-official%2Furl.json/raw?ref=master.

  3. 200 OK and 304 statuses for background tasks like limits and executions, but the proxy call for the actual GitLab request doesn’t seem to resolve in the UI.

  4. I have let the node run for several minutes without a timeout error.

  5. Applied encodeURIComponent to the file path to handle slashes.

  6. Toggled between File and JSON response formats.

  7. Unpinned the trigger node to ensure fresh execution data.

  8. Removed manual PRIVATE-TOKEN headers to avoid conflicts with Predefined Credentials

Hi @shontzu !

Your request is going to the /raw endpoint, which returns plain text, not a JSON API response.

When you set the HTTP Request node to “Response Format: JSON”, n8n tries to auto-parse the body as JSON and the node never finishes correctly.

Set the node to “Response Format: String” instead.
Then, in the next Code node, manually parse it:

const data = JSON.parse($json.body);
return data.map(u => ({ json: { url: u } }));

This makes the request complete normally and still gives you usable JSON for the rest of the workflow.

Hi @shontzu, welcome!

Is there any reason to use HTTPS requests rather than the built-in GitLab node?