diff --git a/graylog2-plugin-interfaces/src/main/java/org/graylog2/plugin/inputs/Extractor.java b/graylog2-plugin-interfaces/src/main/java/org/graylog2/plugin/inputs/Extractor.java
index <HASH>..<HASH> 100644
--- a/graylog2-plugin-interfaces/src/main/java/org/graylog2/plugin/inputs/Extractor.java
+++ b/graylog2-plugin-interfaces/src/main/java/org/graylog2/plugin/inputs/Extractor.java
@@ -185,8 +185,11 @@ public abstract class Extractor implements EmbeddedPersistable {
                 }
 
                 if (!converter.buildsMultipleFields()) {
+                    Object converted = converter.convert((String) msg.getFields().get(targetField));
+
+                    // We have arrived here if no exception was thrown and can safely replace the original field.
                     msg.removeField(targetField);
-                    msg.addField(targetField, converter.convert((String) msg.getFields().get(targetField)));
+                    msg.addField(targetField, converted);
                 } else {
                     msg.addFields((Map<String, Object>) converter.convert((String) msg.getFields().get(targetField)));
                 }
failing converters could break extractors. fixes #<I>