Wenn das zu diesem Zeitpunkt kein Array ist, frage ich mich, was da verloren gehen kann.
$read_topics wird ja nur überschrieben, wenn es kein Array ist. Ansonsten bleibt es ja
unangetastet. Ich habe diese Komponente nicht und auch keine Einsicht in den Code und
weiß sonst noch, was da wie und warum passiert. Wird also mit $read_topics an einer Stelle
noch etwas angefangen kann, es kein Array sein, sondern was? Irgendwie kommt mir
das merkwürdrig vor.

Ggf. könnte man jemand $read_topics mit
PHP-Code:
var_dump($read_topics); 
debuggen und den Inhalt hier posten. Natürlich vor dem Überschreiben.
Wenn da nichts drin ist, kann $read_topics nicht gleichzeitig für die Anzeige
der neuen Thread verantwortlich sein oder es wird an einer bestimmten Stelle neu
belegt, wenn es auch hier kein Array ist etc.

Grüße
ec