DEV Community

Cover image for n8n + Google Cloud Storage: The resource you are requesting could not be found (Request failed with status code 404)
c3phalik
c3phalik

Posted on

n8n + Google Cloud Storage: The resource you are requesting could not be found (Request failed with status code 404)

n8n version: 1.94.1
Enter fullscreen mode Exit fullscreen mode

Solving 404 Errors in n8n when Using Google Cloud Storage

When working with Google Cloud Storage in n8n, you might encounter 404 errors when trying to retrieve an object from a bucket, even when you are sure the file exists.

This is often caused by special characters in the file path, such as slashes (/), spaces, or other non-alphanumeric characters that can be misinterpreted by the Google Cloud Storage API.

Fortunately, the solution is simple: URL encoding.

URL encoding transforms special characters into a format that the API can correctly interpret, ensuring that your object path is handled properly.

Let's fix the issue and retrieve the object successfully using n8n with Google Cloud Storage.

The Problem

In a typical scenario, you might encounter a 404 error when trying to fetch an object from a bucket in Google Cloud Storage:

The resource you are requesting could not be found.

This error often occurs when there are special characters in the file path (like slashes, colons, or spaces) that Google Cloud Storage fails to correctly interpret.

For example, an object path such as:

folder_name/file.ext
Enter fullscreen mode Exit fullscreen mode

is sometimes misread by the Google Cloud Storage API due to the / character. If it's not properly encoded, it leads to the file not being found, resulting in a 404 error.
The Solution: URL Encoding

To resolve this issue, we can apply URL encoding to the objectName in n8n. URL encoding converts special characters into a format that is safe for URLs. For instance:

Slash (/) becomes %2F

Space ( ) becomes %20

Colon (:) becomes %3A
Enter fullscreen mode Exit fullscreen mode

By encoding the file path, we can avoid the misinterpretation of these characters, ensuring the API can fetch the correct file.

How to Apply URL Encoding in n8n:

In n8n, you can easily use URL encoding in the Expression Editor to encode your objectName. Here’s how you can implement it:

File Name Without URL Encoding (Will throw an error - 404):

You might start with a simple expression like this:

Object Name = "{{ $json.file_name }}"
Enter fullscreen mode Exit fullscreen mode

This returns the file path directly, which may contain characters that Google Cloud Storage cannot interpret, such as the slash (/).

File Name With URL Encoding (Solution):

To encode the file path, you can use the .urlEncode() function:

{{ $json.file_name.urlEncode() }}
Enter fullscreen mode Exit fullscreen mode
For example, if your objectName is:

folder_name/file.ext

It will be encoded to:

folder_name0%2Ffile.ext
Enter fullscreen mode Exit fullscreen mode

This ensures that Google Cloud Storage correctly interprets the object path, and the 404 error will be resolved.

Top comments (1)

Collapse
 
jhosebro profile image
Jhoan Sebastian Rojas Holguin

Wow, I don't start with n8n development, but this is an excellent resource to try, instead of always searching in ChatGPT. I think that a 404 error doesn't provide more details, and you fall into a hole without escape routes. Thank you.