4 months ago
I am hosting Langfuse in Railway with the Architecture in the Screenshot. When i then try tracing in n8n, it gives me this error
The service was not able to process your request
Failed to upload events to blob storage, aborting event processing
Why and what can i do? My s3 storage is minio
Attachments
1 Replies
19 days ago
This looks like Langfuse can receive the trace request, but then fails when it tries to persist the event payload to object storage. For self-hosted Langfuse, incoming events are written to S3-compatible storage first, then the worker processes them from there. So if event upload to MinIO fails, tracing fails even if Postgres, ClickHouse, and Redis are healthy.
For Railway + MinIO, I would check these points first:
-
Make sure both the Langfuse web service and the Langfuse worker service have the same event-upload S3 variables. It is easy to set them on only one service.
-
Use the MinIO API endpoint, not the console endpoint. The endpoint should be the internal Railway service URL for MinIO on port 9000, for example:
LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://minio.railway.internal:9000
Use your actual MinIO service name if it is not minio.
- Enable path-style requests for MinIO:
LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE=true
- Confirm the bucket exists. The default Langfuse compose setup uses a bucket named
langfuse, but a separate MinIO service on Railway may not create it automatically.
LANGFUSE_S3_EVENT_UPLOAD_BUCKET=langfuse
LANGFUSE_S3_EVENT_UPLOAD_PREFIX=events/
LANGFUSE_S3_EVENT_UPLOAD_REGION=auto
- Confirm the access key and secret key in Langfuse match the MinIO root user/password or the MinIO user you created for Langfuse.
If you also use media uploads or batch exports, those have separate LANGFUSE_S3_MEDIA_UPLOAD_* and LANGFUSE_S3_BATCH_EXPORT_* settings. But the error you pasted is specifically on event processing, so I would fix LANGFUSE_S3_EVENT_UPLOAD_* first.
The most likely Railway-specific mistake is using a public MinIO URL, the MinIO console port, or setting the S3 variables only on the web container while the worker has different values. After changing the variables, redeploy both web and worker, then send one small n8n trace and check the worker logs.
