Publishing a page created from a plugin blueprint fails depending on the size of the template

XMLWordPrintable

    • Severity 3 - Minor

      Issue Summary

      Publishing a page that was created from a plugin blueprint fails, depending on its size. The issue was observed when the template exceeded 10.000 characters.

      Steps to Reproduce

      1. Install a plugin that provides extra blueprints
      2. Use the ellipsis button alongside the Create one to select a template
      3. Select Forms for Confluence, then Job Application
      4. Fill in the requested data and try to publish the page, without modifying its contents

      Expected Results

      The page is published, and no error is returned.

      Actual Results

      The page cannot be published, and the following exception is thrown in the atlassian-confluence.log file:

      2025-07-16 18:20:11,113 ERROR [http-nio-8090-exec-37 url: /confluence/rest/api/content/blueprint/instance/1114115; user: admin] [v2.api.model.ExceptionConverter] convertServiceException No status code found for exception, converting to internal server error :
       -- url: /confluence/rest/api/content/blueprint/instance/1114115 | userName: admin | referer: confluence/pages/resumedraft.action?draftId=1114115&draftShareId=5ef73975-d895-4afd-a02c-8e0f03498117& | traceId: 94e89af02277c7a9
      java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: Unexpected end-of-input: was expecting closing quote for a string value
       at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1, column: 10001] (through reference chain: com.atlassian.confluence.plugins.createcontent.rest.entities.CreateBlueprintPageRestEntity["context"])
          at com.atlassian.confluence.plugins.createcontent.impl.DefaultRequestStorage.retrieveRequest(DefaultRequestStorage.java:79)
          at com.atlassian.confluence.plugins.createcontent.impl.DefaultContentBlueprintService.getCreateBlueprintPageEntity(DefaultContentBlueprintService.java:419)
          at com.atlassian.confluence.plugins.createcontent.impl.DefaultContentBlueprintService.publishInstance(DefaultContentBlueprintService.java:185)
          at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
          ...
          at java.base/java.lang.Thread.run(Thread.java:1583)
      Caused by: com.fasterxml.jackson.databind.JsonMappingException: Unexpected end-of-input: was expecting closing quote for a string value
       at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1, column: 10001] (through reference chain: com.atlassian.confluence.plugins.createcontent.rest.entities.CreateBlueprintPageRestEntity["context"])
          at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:402)
          at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:361)
          at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1937)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:578)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:446)
          at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1493)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:348)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185)
          at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
          at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4905)
          at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3848)
          at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3816)
          at com.atlassian.confluence.plugins.createcontent.impl.DefaultRequestStorage.retrieveRequest(DefaultRequestStorage.java:77)
          ... 426 more
      Caused by: com.fasterxml.jackson.core.io.JsonEOFException: Unexpected end-of-input: was expecting closing quote for a string value
       at [Source: REDACTED (StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION disabled); line: 1, column: 10001]
          at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInvalidEOF(ParserMinimalBase.java:585)
          at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString2(ReaderBasedJsonParser.java:2187)
          at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._finishString(ReaderBasedJsonParser.java:2174)
          at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.getText(ReaderBasedJsonParser.java:295)
          at com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializerNR.deserialize(UntypedObjectDeserializerNR.java:82)
          at com.fasterxml.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:623)
          at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:449)
          at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32)
          at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:545)
          at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:576)
          ... 435 more
      

      Workaround

      Reopening the editor allows you to publish the page, as follows:

      1. Close the editor
      2. Go to Profile > Drafts and locate the draft and open it
      3. Click Publish to save the page

      Notes

      This issue only happens with plugin blueprints. If you recreate the same blueprint that is returning an error manually, the issue does not happen. This appears to be related to the way the contents are loaded. When the template comes from a plugin, it is stored on the os_propertyentry table, text_val column for that given draft. If we inspect this collumn, the value is being truncated at 10k characters since 9.4.0. When we try to save the page, that value is retrieved, and the error is returned since it is indeed broken.

            Assignee:
            Kusal Kithul-Godage
            Reporter:
            Bernardo Andreeti
            Votes:
            26 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: