puro icon indicating copy to clipboard operation
puro copied to clipboard

git: fatal: Not a valid object name HEAD` when running `puro flutter run` after moving project directory

Open shamnad-sherief opened this issue 6 months ago • 1 comments

I encountered an error when trying to run puro flutter run in an environment I had previously created.

Steps I took:

  1. Created a puro environment named cashew inside a project.
  2. Moved the entire project directory to a different location to work around a Gradle "File name too long" error.
  3. Ran puro flutter run in 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.

shamnad-sherief avatar Aug 12 '25 04:08 shamnad-sherief

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

shamnad-sherief avatar Aug 12 '25 04:08 shamnad-sherief

It looks like the git repository was corrupt somehow, you might need to puro rm the environment or nuke ~/.puro.

pingbird avatar Nov 27 '25 05:11 pingbird