-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Low
-
Affects Version/s: 9.4.0
-
Component/s: Content - Blueprints / Templates
-
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
- Install a plugin that provides extra blueprints
- Ex: Forms for Confluence (Surveys, Quizzes, Polls & Votes), or create a sample plugin
- Use the ellipsis button alongside the Create one to select a template
- Select Forms for Confluence, then Job Application
- 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:
- Close the editor
- Go to Profile > Drafts and locate the draft and open it
- 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.