FreeMarker template error

When calling macro "seo", required parameter "id" (parameter #1) was specified, but had null/missing value.

----
Tip: If the parameter value expression on the caller side is known to be legally null/missing, you may want to specify a default value for it with the "!" operator, like paramValue!defaultValue.
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: @seo id=i["id"] title=i["title"]  [in template "irp/web/irp/pages/components/widgets/right_cursuri.ftl" at line 16, column 141]
	- Reached through: #include path.templates + "components...  [in template "irp/web/irp/pages/components/placeholder_right.ftl" at line 4, column 1]
	- Reached through: #include path.templates + "components...  [in template "irp/web/irp/pages/curs/index.ftl" at line 81, column 1]
----

Java stack trace (for programmers):
----
freemarker.core._MiscTemplateException: [... Exception message was already printed; see it above ...]
	at freemarker.core.Macro$Context.sanityCheck(Macro.java:221)
	at freemarker.core.Macro$Context.runMacro(Macro.java:170)
	at freemarker.core.Environment.visit(Environment.java:686)
	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:80)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.MixedContent.accept(MixedContent.java:57)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:278)
	at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:157)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:501)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:67)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.MixedContent.accept(MixedContent.java:57)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:278)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.Environment.include(Environment.java:1967)
	at freemarker.core.Include.accept(Include.java:175)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:278)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:278)
	at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:157)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:501)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:67)
	at freemarker.core.Environment.visitByHiddingParent(Environment.java:278)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.Environment.include(Environment.java:1967)
	at freemarker.core.Include.accept(Include.java:175)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.MixedContent.accept(MixedContent.java:57)
	at freemarker.core.Environment.visit(Environment.java:257)
	at freemarker.core.Environment.process(Environment.java:235)
	at freemarker.template.Template.process(Template.java:262)
	at com.mwt.common.controller.ControllerServlet.doGet(ControllerServlet.java:155)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at com.mwt.common.controller.UTF8Filter.doFilter(UTF8Filter.java:32)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)