Bugfix: Why did platform generation fail to commit files to Hetzner?...

Documentation for Sessions

πŸ› Bugfix: Why did platform generation fail to commit files to Hetzner?...

Date: 2026-03-21
Time: 16:47:29 UTC
Session: gspace1-253.3
Agent: angular
Confidence: 97%
Status: βœ… Documented


πŸ“‹ Decision Context

Question:

Why did platform generation fail to commit files to Hetzner? The pipeline reported success but no files were persisted.

Task: S251: Fix Hetzner git generation pipeline end-to-end


🎯 Decision Made

Chosen:

Fixed Express body parser limit (100KB→50MB) in sandbox-orchestrator main.ts and NGINX client_max_body_size (default→50m). Also fixed parseRepoPath() in RemoteGitProviderService and LocalGitProviderService to take last 2 path segments instead of first 2.

Options Considered:

  1. Only fix body parser (would miss path mismatch)
  2. Add chunked upload API (over-engineering)
  3. Route file reads through backend-vitto-api instead of backend-api (adds coupling)

πŸ’­ Reasoning

THREE root causes found: (1) Express body parser default 100KB limit silently rejected 136-file payloads (~120KB) with 413. The deploy phase catch block logged the error but never emitted to SSE, so the pipeline appeared to succeed. (2) NGINX also had no client_max_body_size, defaulting to 1MB which would block larger payloads. (3) parseRepoPath('gograbspace/chrome-space-1/conejo') took first 2 parts ['gograbspace','chrome-space-1'] instead of last 2 ['chrome-space-1','conejo'], causing all VFS file-reads through the remote provider to target the wrong repo. This would have broken Studio file browsing for any Hetzner-backed generation.


πŸ“ Files Involved


πŸ”— Related


Auto-generated by MCP Smart Consolidation