Error rendering template

        com.k15t.scroll.vpt3.velocity.TemplateRenderingException: Error: Invocation of method 'substring' in  class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds for length 38
Template: velocimacros/pages/content/modules/header_content.vm
Line: 17
Column: 60
Source location:

                #set($macro.issueNumber = $macro.fullTitle.substring(0, $macro.splitter))
                                                           ^

	at com.k15t.scroll.vpt3.velocity.Velocity2Engine.renderTemplate(Velocity2Engine.java:155)
	at com.k15t.scroll.vpt3.sdp.publishing.theme.template.VelocityThemeTemplateRenderer.renderTemplate(VelocityThemeTemplateRenderer.java:83)
	at com.k15t.scroll.vpt3.sdp.publishing.render.SdpRenderer.render(SdpRenderer.java:203)
	at com.k15t.scroll.vpt3.sdp.publishing.render.full.DefaultThemeOutputFilesUpdater.renderAndPublishContentPage(DefaultThemeOutputFilesUpdater.java:332)
	at com.k15t.scroll.vpt3.sdp.publishing.render.full.DefaultThemeOutputFilesUpdater.lambda$renderContentPages$8(DefaultThemeOutputFilesUpdater.java:281)
	at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at com.k15t.scroll.vpt3.common.logging.MDCTransferringExecutorService$WrappingTask.call(MDCTransferringExecutorService.java:38)
	at com.k15t.scroll.vpt3.common.util.WrappingExecutorService$TaskWrapperRunnable.run(WrappingExecutorService.java:155)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'substring' in  class java.lang.String threw exception java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds for length 38 at velocimacros/pages/content/modules/header_content.vm[line 17, column 60]
	at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:308)
	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:235)
	at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
	at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
	at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
	at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:217)
	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.directive.Block.render(Block.java:94)
	at org.apache.velocity.runtime.directive.Block$Reference.render(Block.java:181)
	at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:539)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:217)
	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
	at org.apache.velocity.runtime.directive.BlockMacro.render(BlockMacro.java:122)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.directive.Block.render(Block.java:94)
	at org.apache.velocity.runtime.directive.Block$Reference.render(Block.java:181)
	at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:539)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:217)
	at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
	at org.apache.velocity.runtime.directive.BlockMacro.render(BlockMacro.java:122)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
	at org.apache.velocity.runtime.directive.Parse.render(Parse.java:284)
	at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
	at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
	at org.apache.velocity.runtime.parser.node.ASTElseIfStatement.render(ASTElseIfStatement.java:108)
	at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
	at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
	at org.apache.velocity.Template.merge(Template.java:358)
	at org.apache.velocity.Template.merge(Template.java:262)
	at com.k15t.scroll.vpt3.velocity.Velocity2Engine.renderTemplate(Velocity2Engine.java:147)
	... 11 more
Caused by: java.lang.StringIndexOutOfBoundsException: Range [0, -1) out of bounds for length 38
	at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
	at java.base/jdk.internal.util.Preconditions$1.apply(Unknown Source)
	at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
	at java.base/jdk.internal.util.Preconditions$4.apply(Unknown Source)
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Unknown Source)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckFromToIndex(Unknown Source)
	at java.base/jdk.internal.util.Preconditions.checkFromToIndex(Unknown Source)
	at java.base/java.lang.String.checkBoundsBeginEnd(Unknown Source)
	at java.base/java.lang.String.substring(Unknown Source)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
	at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
	at com.atlassian.velocity.htmlsafe.introspection.UnboxingMethod.invoke(UnboxingMethod.java:28)
	at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
	... 52 more

        
        	Velocity logs:

	 ERROR: Left side ($params.sourcePage.metadata.heading.asText().length()) of comparison operation has null value at velocimacros/_general/common/navigation/elements/subnavigationCard.vm[line 3, column 68] 

	 ERROR: Left side ($params.sourcePage.metadata.heading.asText().length()) of comparison operation has null value at velocimacros/_general/common/navigation/elements/subnavigationCard.vm[line 3, column 68] 

	 ERROR: Exception in macro #header_content called at velocimacros/pages/content/content.vm[line 4, column 1] 

	 ERROR: Exception rendering block bodyContentAsHtml at velocimacros/_general/common/layout/wrapper.vm[line 22, column 17] 

	 ERROR: Exception in macro #wrapper called at velocimacros/pages/content/content.vm[line 3, column 1] 

	 ERROR: Exception rendering block bodyContentAsHtml at velocimacros/_general/common/layout/renderTemplate.vm[line 78, column 9] 

	 ERROR: Exception in macro #renderTemplate called at velocimacros/pages/content/content.vm[line 1, column 1] 

	 ERROR: Exception rendering #parse(velocimacros/pages/content/content.vm) at page.vm[line 6, column 5]