For Oh Dear!, we’re using Laravel Telescope as a convenient way of tracking/displaying exceptions, runs, …
It stores its exceptions in the database, so you can easily view them again. It stores those in a TEXT
field in MySQL, which is limited to 2^16
bytes, or 65536 bytes. Some of our exceptions tend to be pretty long, and they were hitting this limit.
The fix is to transfer the column from a TEXT
to a LONGTEXT
instead.
MariaDB [ohdear]> ALTER TABLE telescope_entries MODIFY content LONGTEXT;
You now have 2^32
bytes for storing data, or 4MB.
The table will now show it has a LONGTEXT
field instead.
MariaDB [ohdear]> describe telescope_entries; +-------------------------+---------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------------------+---------------------+------+-----+---------+----------------+ | sequence | bigint(20) unsigned | NO | PRI | NULL | auto_increment | | uuid | char(36) | NO | UNI | NULL | | | batch_id | char(36) | NO | MUL | NULL | | | family_hash | varchar(191) | YES | MUL | NULL | | | should_display_on_index | tinyint(1) | NO | | 1 | | | type | varchar(20) | NO | MUL | NULL | | | content | longtext | YES | | NULL | | | created_at | datetime | YES | | NULL | | +-------------------------+---------------------+------+-----+---------+----------------+ 8 rows in set (0.00 sec)
Your exceptions/stacktraces should now be logged properly.