This is my toSearchableArray for my Submission model:
public function toSearchableArray(): array
{
return $this->only(['id', 'title', 'link', 'raw_text', 'subchan', 'nsfw', 'created_at_ts', 'file_path']);
}
Today I decided to add "file_path" to this. However I noticed that when going to the meilisearch dashboard, file_path wasn't being indexed after a flush (flush does work, all the records are deleted) and an import. I even tried php artisan scout:sync-index-settings. Now here's the weird part, I tried this again and I started removing some columns. I removed "raw_text" for example. But it was still indexing raw_text! What the heck?
In fact, I can completely remove toSearchableArray, and it still works. How is this possible? It just remembers what columns to index?
I figured this could only be a cache issue, so I tried php artisan cache:clear but the problem persists. I also tried restarting my machine, deleting all indexes, and nothing works.
This is probably the weirdest bug I've ever encountered using Laravel.
The solution was that it wasn't enough to stop my queue worker and start it again, or restart my machine. It had do a
php artisan queue:restartsince it appears the worker was caching my toSearchableArray and this is the only way to clear that cache. Strange.