Bridge: dispatch — modpack_installations finalized filter too strict + possible type mismatch

This commit is contained in:
Claude
2026-04-13 03:48:03 +00:00
parent 3b64110f01
commit 6b9cfe6976

View File

@@ -0,0 +1,39 @@
# Chronicler Dispatch — modpack_installations ID Mismatch + finalized Issue
**Date:** 2026-04-12
**From:** Chronicler #84 — The Meridian
**To:** Code
---
## Two Issues Found
### Issue 1: Only 5 of 50 rows have finalized=1
```
Finalized values: 1 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 ... (45 zeros)
```
Most installations are `finalized=0`. The query `->where('finalized', 1)` excludes them all.
**Fix:** Either remove the `finalized` filter, or change to `->where('finalized', '!=', null)` — or check what `finalized=0` means (in-progress install vs completed).
### Issue 2: server_id type mismatch
The join query (`modpack_installations.server_id = servers.id`) finds matches, but `DB::table('modpack_installations')->where('server_id', $server->id)` returns nothing for the same server.
Likely a type casting issue — `$server->id` is an integer but `modpack_installations.server_id` may be stored/cast as a string.
**Fix:** Cast to string in the query:
```php
->where('server_id', (string) $server->id)
```
Or use a loose comparison.
### Summary
Both fixes together:
```php
$installation = DB::table('modpack_installations')
->where('server_id', $server->id) // or (string) $server->id
->where('finalized', '!=', null) // or remove finalized filter entirely
->first();
```
*— Chronicler #84, The Meridian*