puro
puro copied to clipboard
git: fatal: Not a valid object name HEAD` when running `puro flutter run` after moving project directory
I encountered an error when trying to run puro flutter run in an environment I had previously created.
Steps I took:
- Created a
puroenvironment namedcashewinside a project. - Moved the entire project directory to a different location to work around a Gradle
"File name too long"error. - Ran
puro flutter runin the new location.
Observed behavior:
[E] git: fatal: Not a valid object name HEAD
[x] Bad state: git subprocess failed with exit code 128
#0 GitClient._ensureSuccess (package:puro/src/git.dart:109)
#1 GitClient.mergeBase (package:puro/src/git.dart:418)
<asynchronous suspension>
#2 updateEngineVersionFile (package:puro/src/env/create.dart:72)
<asynchronous suspension>
#3 getEngineVersion (package:puro/src/env/create.dart:90)
<asynchronous suspension>
#4 setUpFlutterTool (package:puro/src/env/flutter_tool.dart:90)
<asynchronous suspension>
#5 runFlutterCommand (package:puro/src/env/command.dart:30)
<asynchronous suspension>
#6 FlutterCommand.run (package:puro/src/commands/flutter.dart:48)
<asynchronous suspension>
#7 CommandRunner.runCommand (package:args/command_runner.dart:212)
<asynchronous suspension>
#8 main (package:puro/src/cli.dart:288)
<asynchronous suspension>
[x] Puro crashed! Please file an issue at https://github.com/pingbird/puro
Consider running the command with a higher log level: `--log-level=4`
Expected behavior:
The puro flutter run command should run normally without a Git error after moving the project directory.
Additional notes:
- The error started immediately after moving the project folder.
- The original environment was working fine before the move.
Here is a detailed log :-
puro --log-level=4 flutter run
[D] envPuroRoot: /home/shamnad/.puro
[D] binPuroRoot: null
[D] firstRun: false
[D] legacyPubCache: null
[V] Started waiting for lock on /home/shamnad/.puro/prefs.json
[V] Waiting for lock on /home/shamnad/.puro/prefs.json took 0ms
[D] puroRootDir: LocalDirectory: '/home/shamnad/.puro'
[D] puroRoot (resolved): LocalDirectory: '/home/shamnad/.puro'
[D] PURO_FLUTTER_BIN: null
[D] target: PuroBuildTarget.linuxX64
[D] Platform.executable: puro
[D] Platform.resolvedExecutable: /home/shamnad/.puro/bin/puro
[D] Platform.script: file:///home/shamnad/Cashew/puro
[D] Platform.packageConfig: null
[D] No package root: Platform.packageConfig is null
[D] packageRoot: null
[D] executablePath: /home/shamnad/.puro/bin/puro
[D] scriptPath: /home/shamnad/.puro/bin/puro
[D] scriptExtension:
[D] installationType: PuroInstallationType.distribution
[D] version: 1.4.11
[V] Checking if update is available
[V] Started waiting for lock on /home/shamnad/.puro/latest_version
[V] Waiting for lock on /home/shamnad/.puro/latest_version took 0ms
[D] lastNotification: null
[D] latestVersion: 1.4.11
[D] isOutOfDate: false
[D] willNotify: false
[D] shouldVersionCheck: false
[D] lastVersionCheck: 2025-08-11 16:32:37.876198
[V] Flutter SDK: /home/shamnad/.puro/envs/stable/flutter
[V] Started waiting for lock on /home/shamnad/.puro/envs/stable/prefs.json
[V] Waiting for lock on /home/shamnad/.puro/envs/stable/prefs.json took 0ms
[D] [git 1533602] /home/shamnad/.puro/envs/stable/flutter> git show HEAD:bin/internal/engine.version
[D] git: fatal: invalid object name 'HEAD'.
[D] [git 1533602] finished with exit code 128 in 3ms
[V] git failed with exit code 128
[D] [git 1533604] /home/shamnad/.puro/envs/stable/flutter> git remote -v
[D] git: origin https://github.com/flutter/flutter.git (fetch)
[D] git: origin https://github.com/flutter/flutter.git (push)
[D] [git 1533604] finished with exit code 0 in 3ms
[D] [git 1533605] /home/shamnad/.puro/envs/stable/flutter> git merge-base HEAD origin/master
[D] git: fatal: Not a valid object name HEAD
[D] [git 1533605] finished with exit code 128 in 3ms
[V] git failed with exit code 128
[x] Bad state: git subprocess failed with exit code 128
#0 GitClient._ensureSuccess (package:puro/src/git.dart:109)
#1 GitClient.mergeBase (package:puro/src/git.dart:418)
<asynchronous suspension>
#2 updateEngineVersionFile (package:puro/src/env/create.dart:72)
<asynchronous suspension>
#3 getEngineVersion (package:puro/src/env/create.dart:90)
<asynchronous suspension>
#4 setUpFlutterTool (package:puro/src/env/flutter_tool.dart:90)
<asynchronous suspension>
#5 runFlutterCommand (package:puro/src/env/command.dart:30)
<asynchronous suspension>
#6 FlutterCommand.run (package:puro/src/commands/flutter.dart:48)
<asynchronous suspension>
#7 CommandRunner.runCommand (package:args/command_runner.dart:212)
<asynchronous suspension>
#8 main (package:puro/src/cli.dart:288)
<asynchronous suspension>
[x] Puro crashed! Please file an issue at https://github.com/pingbird/puro
It looks like the git repository was corrupt somehow, you might need to puro rm the environment or nuke ~/.puro.