Issue with Exporting Views on Self-Hosted Baserow Instance (GCP/Cloud Run)

I’ve deployed a self-hosted Baserow instance on Google Cloud Platform (GCP), following the steps outlined in this forum post. While the setup works well for most features, I’m encountering issues with exporting views.

When I generate an export, I can see it loading as expected. However, after the process completes, clicking the Download button results in the following error (in Chrome):
“File wasn’t available on site.”

Here’s the relevant log entry:

GET 404 148 B 1 ms Chrome 130 https://baserow.iqbi.nl/media/export_files/cd4bb5bc-986d-4d44-a58d-368caed0e89c.csv?dl=export+-+315-03-Xior+ES+%28PO%29+-+Grid.csv
  • Browsers Tested: The issue persists across multiple browsers. In Safari, the file downloads but is empty (0 bytes).
  • Tried Solutions:
    1. Following advice from another post regarding file download issues on AWS with an S3 bucket, I removed the ?dl=export portion of the URL. Unfortunately, this didn’t work.
    2. I also tried setting the DOWNLOAD_FILE_VIA_XHR=1 environment variable, but this didn’t resolve the problem either.

Has anyone encountered similar issues with file exports in a self-hosted Baserow setup, particularly on GCP/Cloud Run? Are there additional configuration steps I may have missed Could this be a problem with Cloud Run’s file serving or media storage setup?

I’ve attached a copy of my logs for further inspection. Please let me know if any other details about my setup or deployment could be helpful for troubleshooting.

[
  {
    "textPayload": "\u001b[1m [BASEROW-WATCHER][2024-11-27 10:06:11] \u001b[32mBaserow is now available at https://baserow.iqbi.nl\u001b[0m \u001b(B\u001b[m ",
    "insertId": "6746ef13000bd607a4bd6ba4",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "service_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "configuration_name": "baserow-iqbi",
        "location": "europe-west4",
        "revision_name": "baserow-iqbi-00268-qcc"
      }
    },
    "timestamp": "2024-11-27T10:06:11.775687Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:11.941119962Z"
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:30] 127.0.0.1:25088 - \"GET /api/_health/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef26000ba89586ca8477",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "location": "europe-west4",
        "project_id": "iqbi-baserow",
        "service_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:30.764053Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:30.769303031Z"
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:32] 127.0.0.1:50978 - \"GET /api/_health/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef280003a7d5fb06d930",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "revision_name": "baserow-iqbi-00268-qcc"
      }
    },
    "timestamp": "2024-11-27T10:06:32.239573Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:32.246464661Z"
  },
  {
    "textPayload": "2024-11-27 10:06:41,248 INFO success: beatworker entered RUNNING state, process has stayed up for > than 100 seconds (startsecs)",
    "insertId": "6746ef310003c8d04263a147",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "service_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc",
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "location": "europe-west4"
      }
    },
    "timestamp": "2024-11-27T10:06:41.248016Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:41.566430031Z"
  },
  {
    "textPayload": "2024-11-27 10:06:41,248 INFO success: beatworker entered RUNNING state, process has stayed up for > than 100 seconds (startsecs)",
    "insertId": "6746ef310003c8de543b1ab2",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "service_name": "baserow-iqbi",
        "location": "europe-west4",
        "revision_name": "baserow-iqbi-00268-qcc",
        "project_id": "iqbi-baserow",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:41.248030Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:41.566430031Z"
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:51] 127.0.0.1:52846 - \"GET /api/_health/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef3b000471986e31d93f",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "location": "europe-west4",
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:51.291224Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:51.294142470Z"
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:53] 127.0.0.1:18751 - \"GET /api/_health/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef3d0000848016cc9321",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "location": "europe-west4"
      }
    },
    "timestamp": "2024-11-27T10:06:53.033920Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:53.037947241Z"
  },
  {
    "insertId": "6746ef41000d210727c5fb73",
    "httpRequest": {
      "requestMethod": "POST",
      "requestUrl": "https://baserow.iqbi.nl/api/database/export/table/1095/",
      "requestSize": "2601",
      "status": 200,
      "responseSize": "474",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
      "remoteIp": "2a02:a452:1a7:1:90e7:7f6e:43fd:3595",
      "referer": "https://baserow.iqbi.nl/database/243/table/1095/5204",
      "serverIp": "2a00:1450:400e:811::2013",
      "latency": "0.127582779s",
      "protocol": "HTTP/1.1"
    },
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "location": "europe-west4"
      }
    },
    "timestamp": "2024-11-27T10:06:57.726435Z",
    "severity": "INFO",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Frequests",
    "trace": "projects/iqbi-baserow/traces/c8a7b2b5e29fad492e96b904831b6251",
    "receiveTimestamp": "2024-11-27T10:06:57.864733019Z",
    "spanId": "15abb7489a319f5c",
    "traceSampled": true
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:57] 127.0.0.1:40954 - \"GET /api/_health/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef41000d1c75d880a115",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "service_name": "baserow-iqbi",
        "location": "europe-west4",
        "revision_name": "baserow-iqbi-00268-qcc",
        "project_id": "iqbi-baserow",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:57.859253Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:57.955972059Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:06:57] [2024-11-27 10:06:02,192: INFO/ForkPoolWorker-1] Task baserow.core.notifications.tasks.beat_send_instant_notifications_summary_by_email[ecc4ada6-6d98-4ebc-b9c2-0a9ef132fec0] succeeded in 0.020545153000000482s: None \u001b(B\u001b[m ",
    "insertId": "6746ef41000d21623280e0d3",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "project_id": "iqbi-baserow",
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "location": "europe-west4",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:57.860514Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:58.032409454Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:06:57] [2024-11-27 10:06:57,860: INFO/MainProcess] Task baserow.contrib.database.export.tasks.run_export_job[7388c497-d9b9-43c3-a3d8-cd992e7dc30f] received \u001b(B\u001b[m ",
    "insertId": "6746ef41000df00ad3f43ad1",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc",
        "project_id": "iqbi-baserow",
        "location": "europe-west4"
      }
    },
    "timestamp": "2024-11-27T10:06:57.913418Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:58.032409454Z"
  },
  {
    "insertId": "6746ef42000e473a9c9daf68",
    "httpRequest": {
      "requestMethod": "GET",
      "requestUrl": "https://baserow.iqbi.nl/api/database/export/130/",
      "requestSize": "2390",
      "status": 200,
      "responseSize": "574",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
      "remoteIp": "2a02:a452:1a7:1:90e7:7f6e:43fd:3595",
      "referer": "https://baserow.iqbi.nl/database/243/table/1095/5204",
      "serverIp": "2a00:1450:400e:811::2013",
      "latency": "0.043725455s",
      "protocol": "HTTP/1.1"
    },
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "location": "europe-west4",
        "project_id": "iqbi-baserow",
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:58.890894Z",
    "severity": "INFO",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Frequests",
    "trace": "projects/iqbi-baserow/traces/da3e5552ed6ac3283dcb30dc157b7e30",
    "receiveTimestamp": "2024-11-27T10:06:59.197391951Z",
    "spanId": "e9b0f63b4f0dc340"
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:58] 169.254.169.126:0 - \"POST /api/database/export/table/1095/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef42000e4386d53c2ae6",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "location": "europe-west4"
      }
    },
    "timestamp": "2024-11-27T10:06:58.934790Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:58.956420942Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:06:59] [2024-11-27 10:06:57,913: WARNING/ForkPoolWorker-1] 267|2024-11-27 10:06:57.913|INFO|baserow.core.action.signals:log_action_receiver:28 - do: workspace=174 action_type=export_table user=2 \u001b(B\u001b[m ",
    "insertId": "6746ef43000cdbc15827feee",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "location": "europe-west4",
        "revision_name": "baserow-iqbi-00268-qcc",
        "project_id": "iqbi-baserow",
        "configuration_name": "baserow-iqbi",
        "service_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:06:59.842689Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:07:00.029992828Z"
  },
  {
    "insertId": "6746ef43000e4e7a2ba6c229",
    "httpRequest": {
      "requestMethod": "GET",
      "requestUrl": "https://baserow.iqbi.nl/api/database/export/130/",
      "requestSize": "2389",
      "status": 200,
      "responseSize": "574",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
      "remoteIp": "2a02:a452:1a7:1:90e7:7f6e:43fd:3595",
      "referer": "https://baserow.iqbi.nl/database/243/table/1095/5204",
      "serverIp": "2a00:1450:400e:811::2013",
      "latency": "0.042318647s",
      "protocol": "HTTP/1.1"
    },
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "project_id": "iqbi-baserow",
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc"
      }
    },
    "timestamp": "2024-11-27T10:06:59.894062Z",
    "severity": "INFO",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Frequests",
    "trace": "projects/iqbi-baserow/traces/320138bd966a8d5faf06ca9845e02ffb",
    "receiveTimestamp": "2024-11-27T10:07:00.194800684Z",
    "spanId": "e0ed7646caa2cfa9"
  },
  {
    "textPayload": "\u001b[34m [BACKEND][2024-11-27 10:06:59] 169.254.169.126:0 - \"GET /api/database/export/130/ HTTP/1.1\" 200 \u001b(B\u001b[m ",
    "insertId": "6746ef43000e4abdb7ab07d1",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "revision_name": "baserow-iqbi-00268-qcc",
        "configuration_name": "baserow-iqbi",
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "project_id": "iqbi-baserow"
      }
    },
    "timestamp": "2024-11-27T10:06:59.936637Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:06:59.952494891Z"
  },
  {
    "textPayload": "\u001b[36m [BEAT_WORKER][2024-11-27 10:07:00] [2024-11-27 10:06:00,004: INFO/MainProcess] Scheduler: Sending due task baserow.core.notifications.tasks.beat_send_instant_notifications_summary_by_email() (baserow.core.notifications.tasks.beat_send_instant_notifications_summary_by_email) \u001b(B\u001b[m ",
    "insertId": "6746ef4400001245922b395c",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "location": "europe-west4",
        "revision_name": "baserow-iqbi-00268-qcc"
      }
    },
    "timestamp": "2024-11-27T10:07:00.004677Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:07:00.285688165Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:07:00] [2024-11-27 10:06:02,250: INFO/ForkPoolWorker-1] Task baserow.core.notifications.tasks.singleton_send_instant_notifications_summary_by_email[301ec7c1-4b2f-408e-81cb-211410e659fd] succeeded in 0.05424537199905899s: None \u001b(B\u001b[m ",
    "insertId": "6746ef44000025a521e3c17d",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "project_id": "iqbi-baserow",
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:07:00.009637Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:07:00.285688165Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:07:00] [2024-11-27 10:07:00,009: INFO/MainProcess] Task baserow.core.notifications.tasks.beat_send_instant_notifications_summary_by_email[e2cdf0e9-495f-41cb-aed0-b3b4a7aa15b6] received \u001b(B\u001b[m ",
    "insertId": "6746ef440000348baf5f9989",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "project_id": "iqbi-baserow",
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc"
      }
    },
    "timestamp": "2024-11-27T10:07:00.013451Z",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:07:00.285688165Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:07:00] [2024-11-27 10:06:59,843: INFO/ForkPoolWorker-1] Task baserow.contrib.database.export.tasks.run_export_job[7388c497-d9b9-43c3-a3d8-cd992e7dc30f] succeeded in 1.9816351530000134s: None \u001b(B\u001b[m ",
    "insertId": "6746ef4400003a3f7d343064",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "project_id": "iqbi-baserow",
        "configuration_name": "baserow-iqbi",
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "revision_name": "baserow-iqbi-00268-qcc"
      }
    },
    "timestamp": "2024-11-27T10:07:00.014911Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:07:00.029992828Z"
  },
  {
    "textPayload": "\u001b[36m [EXPORT_WORKER][2024-11-27 10:07:00] [2024-11-27 10:07:00,015: INFO/MainProcess] Task baserow.core.notifications.tasks.singleton_send_instant_notifications_summary_by_email[1a082fc6-3166-4b59-82e4-948d202db648] received \u001b(B\u001b[m ",
    "insertId": "6746ef4400010ec2b50b2510",
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "configuration_name": "baserow-iqbi",
        "project_id": "iqbi-baserow",
        "revision_name": "baserow-iqbi-00268-qcc",
        "service_name": "baserow-iqbi",
        "location": "europe-west4"
      }
    },
    "timestamp": "2024-11-27T10:07:00.069314Z",
    "labels": {
      "instanceId": "004940b3b8fb404aa438bf5ad7499a109c9a3d12380930b17cf0028a5ed4f68ebcf701cd7fd708e69e91c1cb4aeb2fa92d3c4b900b081426cf55a224a8f464243b534c5fa8d0ec"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Fstdout",
    "receiveTimestamp": "2024-11-27T10:07:00.363730970Z"
  },
  {
    "insertId": "6746ef44000a69d1409c2bc2",
    "httpRequest": {
      "requestMethod": "GET",
      "requestUrl": "https://baserow.iqbi.nl/media/export_files/c4d3bc23-69bf-4111-8734-14fe8e0cb321.csv?dl=export+-+315-01-Xior+NL+%28PO%29+-+Grid+2+2.csv",
      "requestSize": "1969",
      "status": 404,
      "responseSize": "152",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
      "remoteIp": "2a02:a452:1a7:1:90e7:7f6e:43fd:3595",
      "referer": "https://baserow.iqbi.nl/database/243/table/1095/5204",
      "serverIp": "2a00:1450:400e:811::2013",
      "latency": "0.001400937s",
      "protocol": "HTTP/1.1"
    },
    "resource": {
      "type": "cloud_run_revision",
      "labels": {
        "revision_name": "baserow-iqbi-00268-qcc",
        "project_id": "iqbi-baserow",
        "location": "europe-west4",
        "service_name": "baserow-iqbi",
        "configuration_name": "baserow-iqbi"
      }
    },
    "timestamp": "2024-11-27T10:07:00.679719Z",
    "severity": "WARNING",
    "labels": {
      "instanceId": "004940b3b8ba9cd4c861e19991859577c8cc737d60b75879cdfd1b64aa47a3c2622c90ad20dc5b9b00c34f84c680572511eefdc7d936e2fbf3fc6a9f66768d2750b09c106921bb"
    },
    "logName": "projects/iqbi-baserow/logs/run.googleapis.com%2Frequests",
    "trace": "projects/iqbi-baserow/traces/a76f01cc35bfc77d896161332cef8740",
    "receiveTimestamp": "2024-11-27T10:07:00.859666432Z",
    "spanId": "3b50b8d19cc01ae5"
  }
]

Hey @Yannick, I’m sorry to hear that you’re having problems with the uploaded files. By default, Baserow stores uploaded files inside the container. Normally, a volume is mounted to it so that the files persist.

Would you mind sharing how you’ve configured your container and if you’ve mounted that volume as well? If you haven’t mounted a volume, then the files don’t persist if your container restarts. Because Google Cloud Run is horizontally scalable, the files won’t persist if you increase the replica count, for example.

I recommend that you use something like Google Cloud Storage to persistently store the files in. Documentation about that can be found here Configuring Baserow.

Hi @bram.

Thank you for your reply. I have followed the steps described on the link to the documentation but I am still unable to solve the issue.

I created a bucket with fine-grained settings and I set the env variables as described on the Django documentation. I added the following env variables. I did not add a volume and mounted it to my container (I did that in a next step).

GS_BUCKET_NAME=XXXXX
DEFAULT_FILE_STORAGE=storages.backends.gcloud.GoogleCloudStorage
STATICFILES_STORAGE=storages.backends.gcloud.GoogleCloudStorage
GS_PROJECT_ID=XXXXX

Now I get a different situation as before. If I click export it stays stuck at 0%. I can see in the network tab that it retries making POST calls to https://baserow.iqbi.nl/api/database/export/table/1340/.

If I inspect the logs I can see that it fails to retrieve google cloud credentials. However, I have confirmed that my service account is correct, and has the right permissions/roles and should be able to access my bucket.


[BACKEND][2024-11-29 14:03:19] DEBUG 2024-11-29 14:03:19,024 google.auth._default._get_explicit_environ_credentials:255- Checking None for explicit credentials as part of auth process...

[BACKEND][2024-11-29 14:03:19] DEBUG 2024-11-29 14:03:19,024 google.auth._default._get_gcloud_sdk_credentials:228- Checking Cloud SDK credentials as part of auth process...

[BACKEND][2024-11-29 14:03:19] DEBUG 2024-11-29 14:03:19,024 google.auth._default._get_gcloud_sdk_credentials:234- Cloud SDK credentials not found on disk; not using them

I noticed on the Django documentation they described something about specifying a credentials file. I added a volume. Volume type: Cloud Storage Bucket, Volume name: gcs-1 and bucket: BUCKET_NAME. I then mounted the volume gsc-1 and added a mount path: /credentials. Then following the next steps from Django I specified the path to my credentials.json in the /credentials mount.

Django documentation:
For development use cases, or other instances outside Google infrastructure:
4. Create the key and download your-project-XXXXX.json file.
5. Ensure the key is mounted/available to your running Django app.
6. Set an environment variable of GOOGLE_APPLICATION_CREDENTIALS to the path of the json file.

Unfortunately upon trying this my baserow instance failed to start:

terminated: Application failed to start: container 1: volume (type: gcs, name: gcs-1): failed to mount

In addition to that, this also messed up my license. I no longer have a premium license to my instance. When I visit the manage license page I get the message “Something went wrong while fetching the licenses.” And when I look at the logs I get

baserow_premium.license.exceptions.InvalidLicenseError: The signature of the premium license is invalid. 

My env variables are:

DISABLE_VOLUME_CHECK=True
DATABASE_HOST=XXXXX
DATABASE_NAME=XXXXX
DATABASE_USER=XXXXX
DATABASE_PASSWORD=XXXXX
DATABASE_PORT=5432
BASEROW_PUBLIC_URL=https://baserow.iqbi.nl
REDIS_HOST=XXXXX
REDIS_PORT=XXXXX
REDIS_PASSWORD=XXXXX
SECRET_KEY=XXXXX
BASEROW_JWT_SIGNING_KEY=XXXXX
GS_BUCKET_NAME=XXXXX
DEFAULT_FILE_STORAGE=storages.backends.gcloud.GoogleCloudStorage
STATICFILES_STORAGE=storages.backends.gcloud.GoogleCloudStorage
GS_PROJECT_ID=XXXXX
BASEROW_BACKEND_DEBUG=on
BASEROW_BACKEND_LOG_LEVEL=DEBUG

Hey @Yannick, base on the Cloud SDK credentials not found on disk; not using them error, it looks like not the Google Cloud Storage credentials were not provided. I’m not very familiar with Google Cloud Platform is general, so I’m not sure about the exact steps here. But it looks like it’s not picking up the credentials file.

I’m not sure what happened with your license file. Have you changed the registered license, or did you somehow ran Baserow with a different public key, or in DEBUG mode?