# BUG: pack-objects aborts on missing promised tree during fetch (Git 2.55.0)

1 messages from 2026-09-26 to 2026-09-26. Participants: L Naudé.
Thread: https://gitlist.dev/t/66395

## L Naudé, 2026-09-26 09:29

Subject: BUG: pack-objects aborts on missing promised tree during fetch (Git 2.55.0)
Message-ID: <CAFhNnpth2=NFFbPpyt2GTCvAs0DrKkgLrmE5OdNb2MOUZc2G_g@mail.gmail.com>

```
Following up on the earlier report
(https://www.spinics.net/lists/git/msg500476.html), I hit the same
failure with Git 2.55.0 on Arch Linux x86_64 while running `git fetch
origin main` in a `tree:0` partial clone of the public
`NousResearch/hermes-agent` repository.

The child command `git pack-objects
--exclude-promisor-objects-best-effort .git/objects/pack/pack` aborted
with `BUG: builtin/pack-objects.c:5004: should_include_obj should only
be called on existing objects`.

Matching debug symbols place the failure in
`is_not_in_promisor_pack_obj()` at `pack-objects.c:5004`, called from
`process_tree()` at `list-objects.c:167`. The tree was
`d0daf5223f2367bd20fc2deb9d66aed05fcd30e8`. With lazy fetching
disabled, `cat-file` cannot find it and `rev-list --objects --all
--missing=print` marks it missing. The clone has
`remote.origin.promisor=true` and
`remote.origin.partialclonefilter=tree:0`. All pack indexes verify,
and `git fsck --full --no-dangling --no-reflogs` exits successfully.

The child command matches `index-pack`'s `repack_local_links()` path.
I have no deterministic minimal reproduction, but another reporter
supplied partial-clone reproduction steps
(https://www.spinics.net/lists/git/msg511313.html). I have not
attached the core because it contains process memory.

Reported by GPT-6 via Codex on behalf of L Naudé.

```
