Import „Failed to map post"-Fehler

Ich habe etwa 1000 Beiträge, die bei einem Import fehlschlagen. Der Hauptfehler scheint „Failed to map post

Hilfe! Hast du dafür irgendwelche Vorschläge? :woozy_face:

Ich habe letzte Woche beim Bearbeiten eines anderen Problems denselben Fehler gesehen. Ich werde ihn diese Woche beheben und hier ein Update posten, sobald er behoben ist.

Das sind nur Warnungen, die wahrscheinlich aufgrund der Fehler „Fehler beim Zuordnen des Beitrags“ auftreten. Dies passiert, wenn eine Nachricht auf einen Beitrag verweist, der nicht existiert. Ich bin mir ziemlich sicher, dass die Behebung des anderen Problems die meisten, wenn nicht alle dieser Warnungen beseitigen wird.

Dieser Fehler wurde durch FIX: Email attachments with a size of 0 bytes caused error · discourse/discourse@e84d88d · GitHub behoben.

Ich habe ein Upgrade durchgeführt, den Import neu aufgebaut, überprüft, dass receiver.rb aktualisiert wurde, und den Import erneut ausgeführt.

Das scheint einige hundert Nachrichten gelöst zu haben, danke.

Ich bekomme jedoch immer noch etwa 200 fehlgeschlagene Nachrichten, und zwar aufgrund einiger Fehlertypen:

Datum fehlt. Überspringe bbe76bf7a9cab5a2ec2a06e6ef453555

Mapping des Beitrags für 23a86e52-71ba-7435-1c9c-c4f2a134b90d@mmtaylor.net fehlgeschlagen
Discourse::InvalidAccess

Dann gibt es noch viele Meldungen „Elternelement existiert nicht“, die vermutlich aus den oben genannten Fehlern resultieren.

Haben Sie eine Idee, woran diese Fehler liegen? Beim ersten Fehler habe ich mir die mbx-Nachricht angesehen, aber ich sehe kein fehlendes Datum.

Du könntest dir die index.db ansehen, die das Importskript erstellt. Es handelt sich um eine SQLite3-Datenbank. Du kannst folgende Abfrage ausführen, um zu sehen, womit der Parser arbeitet. Sie wählt die Nachrichten für die beiden von dir geposteten Message-IDs aus.

SELECT *
FROM email
WHERE msg_id IN ('bbe76bf7a9cab5a2ec2a06e6ef453555', '23a86e52-71ba-7435-1c9c-c4f2a134b90d@mmtaylor.net')

Ich vermute, dass die Spalten email_date und raw_message für dich am interessantesten sein werden. Vielleicht findest du heraus, was den E-Mail-Parser verwirrt…

Bei der ersten Nachricht ist das Datum null, und ich sehe im mbx keine Datumsangabe für diese Nachricht. Mir ist aufgefallen, dass die Antwort (mit :Re) vor der „ursprünglichen

Beim zweiten kann ich nichts Offensichtlich Falsches erkennen. Gibt dieses Bild einen Hinweis auf das Problem?

Nein, es werden die Header „In-Reply-To“ und „References“ verwendet, um nach „Message-ID“ zu matchen und zu sortieren, es sei denn, du hast die Einstellung group_messages_by_subject des Importers auf true geändert.

Ja.

Meine beste Vermutung ist, dass eines der Anhänge ein Problem verursacht. Vielleicht ist die Dateierweiterung nicht erlaubt?

Ich habe die Einstellung group_messages_by_subject auf true gesetzt, da ohne sie überhaupt keine Gruppierung stattfand.

Diese Nachricht enthält zwei eingebettete Bilder:

Content-Type: application/octet-stream;
name=“Conflict (was … long live Wil”
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=“Conflict (was … long live Wil”

Content-Type: image/jpeg; name=“2.1.3FarmerSideEffectLoop.jpg”
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=“2.1.3FarmerSideEffectLoop.jpg”

Könnte es sein, dass der erste Dateiname keine Erweiterung hat?"}

Könnte ich das Datumsproblem lösen, indem ich das Datum in index.db einfüge, anstatt mich mit der mbx-Datei herumzuschlagen?

Ja, das funktioniert. Ich habe das in der Vergangenheit ebenfalls so gemacht. Ich empfehle, index_only in settings.yml auf true zu setzen, damit der Import nicht sofort nach dem Indexieren der Nachrichten beginnt. Nach Abschluss des Indexierens können Sie alle erforderlichen Änderungen in der Datenbank vornehmen. Ändern Sie index_only anschließend wieder auf false und starten Sie den Import neu.

Ich glaube, ich verstehe etwas falsch. Ist die Indizierung nicht bereits abgeschlossen, da index.db bereits erstellt wurde?

Ich habe index.db auf meinen Desktop übertragen. Ich wollte die Daten aktualisieren und dann index.db zurück auf den Server übertragen und den Import erneut ausführen. Ist das nicht richtig?

Ich habe mich dafür entschieden, die mbox-Dateien zu bearbeiten und eine Zeile „Date

Ja, du musst sie löschen.