diff --git a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
index 9b04a14..5f318f6 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
@@ -310,7 +310,7 @@
             meta.setSpanContext(context);
         meta.addEntry("cutOff", cutoff);
 
-        ss.setMeta(meta);
+        ss.setMeta(meta.raw());
 
         String query = this.processor.processQuery(ss.toJSON(), user);
         return Response.ok(query).build();
@@ -567,7 +567,7 @@
                 meta.addEntry("cutoff", cutoff);
                 // should only apply to CQL queries
                 //                meta.addEntry("itemsPerResource", 1);
-                s.setMeta(meta);
+                s.setMeta(meta.raw());
 
                 query = s.toJSON();
                 //                PolicyParser parser = new PolicyParser(user);
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java b/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
index b55cb45..7c3b346 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
@@ -98,7 +98,7 @@
         meta.addEntry("count", pageLength);
         meta.setSpanContext(context);
         meta.addEntry("cutOff", cutoff);
-        ss.setMeta(meta);
+        ss.setMeta(meta.raw());
         if (cq != null)
             ss.setCollection(cq);
         return Response.ok(processor.processQuery(ss.toJSON(), null)).build();
@@ -138,7 +138,7 @@
                 pageInteger, pageLength, ctx, cutoff);
         if (fields != null && !fields.isEmpty())
             meta.addEntry("fields", fields);
-        serializer.setMeta(meta);
+        serializer.setMeta(meta.raw());
         if (cq != null)
             serializer.setCollection(cq);
 
@@ -212,7 +212,7 @@
             // should only apply to CQL queries
             //                meta.addEntry("itemsPerResource", 1);
             QuerySerializer s = new QuerySerializer().setQuery(query, ql, v)
-                    .setMeta(meta);
+                    .setMeta(meta.raw());
             query = processor.processQuery(s.toJSON(), null);
         }
         String result;
