# 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*
