Index: src/views/partials/note-body.ejs
===================================================================
--- src/views/partials/note-body.ejs	(revision f926d13c4545a33246387cc7a96c0fd8fa918942)
+++ src/views/partials/note-body.ejs	(revision 54b027a0ddd850a81ee455880a44caa957a477cc)
@@ -8,5 +8,12 @@
      Krant-only trimmings (the boost byline, polls, the audio player iframe, the
      action bar) stay in tl-item: they are about the feed, not about the post. */
+  // De catch vangt KAPOTTE json; hij vangt niet geldige json van het verkeerde
+  // TYPE. Drie posts van een remote server droegen media_json = "[]", dus een
+  // string met daarin [], en JSON.parse geeft dan netjes een string terug. Een
+  // string heeft geen .filter, en daarmee lag de hele Krant plat: één vreemde
+  // note nam de pagina mee. Wat er binnenkomt is niet van ons, dus de vorm moet
+  // hier afgedwongen worden en niet aangenomen.
   var _m = []; try { _m = JSON.parse(nb.media_json || '[]'); } catch (e) { _m = []; }
+  if (!Array.isArray(_m)) _m = [];
   var _imgs = _m.filter(function (m) { return m && m.url && (!m.type || /^image\//.test(m.type)); });
   var _vids = _m.filter(function (m) { return m && m.url && m.type && /^video\//.test(m.type); });
