{"record":{"id":"c781afc2ff222f40","repo":"coollabsio/coolify","slug":"e-getmessage","errorCode":null,"errorMessage":"$e->getMessage()","messagePattern":"\\$e->getMessage\\(\\)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"app/Models/Application.php","lineNumber":2030,"sourceCode":"                $commands->push($this->gitCommand(executeInDocker($deployment_uuid, $git_clone_command)));\n            } else {\n                $commands->push($this->gitCommand($git_clone_command));\n            }\n\n            return [\n                'commands' => $this->gitCommandsAsShellCommand($commands),\n                'branch' => $branch,\n                'fullRepoUrl' => $fullRepoUrl,\n            ];\n        }\n    }\n\n    public function oldRawParser()\n    {\n        try {\n            $yaml = Yaml::parse($this->docker_compose_raw);\n        } catch (\\Exception $e) {\n            throw new RuntimeException($e->getMessage());\n        }\n        $services = data_get($yaml, 'services');\n\n        $commands = collect([]);\n        $services = collect($services)->map(function ($service) use ($commands) {\n            $serviceVolumes = collect(data_get($service, 'volumes', []));\n            if ($serviceVolumes->count() > 0) {\n                foreach ($serviceVolumes as $volume) {\n                    $workdir = $this->workdir();\n                    $type = null;\n                    $source = null;\n                    if (is_string($volume)) {\n                        $source = str($volume)->before(':');\n                        if ($source->startsWith('./') || $source->startsWith('/') || $source->startsWith('~')) {\n                            $type = str('bind');\n                        }\n                    } elseif (is_array($volume)) {\n                        $type = data_get_str($volume, 'type');","sourceCodeStart":2012,"sourceCodeEnd":2048,"githubUrl":"https://github.com/coollabsio/coolify/blob/70b9acc42467278373e00de77abb40684e25b395/app/Models/Application.php#L2012-L2048","documentation":"oldRawParser() feeds the application's stored docker_compose_raw into Symfony Yaml::parse(). Any YAML syntax error — tab indentation, unbalanced quotes/brackets, duplicate keys, bad anchors — makes Yaml throw, and the catch rethrows the underlying parser message wrapped in RuntimeException. So the text you see is Yaml's own 'line X column Y' diagnostic.","triggerScenarios":"docker_compose_raw edited by hand with tabs instead of spaces; smart quotes or invisible characters pasted from a rich editor; a compose file that docker tolerates via its own pre-processing but plain YAML parsing rejects.","commonSituations":"Pasting compose files from websites/Word/docs that mangle characters; editing the raw editor field and breaking indentation; large multi-document files where one '---' section is malformed.","solutions":["Run the file through yamllint (or any YAML validator) and fix the reported line/column.","Replace tab indentation with 2-space steps per level.","Re-copy the compose file from the repository and edit inside the Coolify UI editor to avoid encoding artifacts."],"exampleFix":"# before (tabs break YAML)\nservices:\n\tapp:\n\t\timage: nginx\n\n# after (spaces)\nservices:\n  app:\n    image: nginx","handlingStrategy":"validation","validationCode":"// Lint before storing/parsing compose content\nuse Symfony\\Component\\Yaml\\Exception\\ParseException;\ntry { Yaml::parse($dockerComposeRaw); } catch (ParseException $e) { return back()->withErrors(['docker_compose_raw' => 'YAML error: ' . $e->getMessage()]); }","typeGuard":null,"tryCatchPattern":"try { $parsed = $application->parse(); } catch (RuntimeException $e) { show the underlying Yaml line/column message to the user next to the raw editor; do not fall back to default parsing. }","preventionTips":["Validate YAML on input in the UI editor, not only at parse time.","Ban tab characters in the compose editor (convert to spaces on paste).","Round-trip test: re-emit Yaml::dump(Yaml::parse($raw)) in tooling to catch subtle breakage early."],"tags":["yaml","docker-compose","parsing","coolify"],"backgroundTag":"yaml-parse-error","analyzedSha":"70b9acc42467278373e00de77abb40684e25b395","analyzedAt":"2026-08-17T01:41:01.313Z","schemaVersion":2},"datasetVersion":"2026-08-17T04:17:16.089Z"}