Save Image with content API fails

I try to upload an image to a REST-Endpoint using the Content-API and createMedia.
I get an error:

2022-08-31 09:32:10,275 ERROR de.osde.app.provider - (/lib/dataTools.js) error saving logo: null

This is my Code:

export const post = (req: Request) => {
  const result = dataTools.saveLogo({
        name: part.fileName,
        mimeType: part.contentType,
        stream: stream
    })
}

and saveLogo

export const saveLogo = (logoData) => {
    return runInContext(() => {
        try {
            const res = libContent.createMedia({
                name: logoData.name,
                mimeType: logoData.mimeType,
                parentPath: "/",
                data: logoData.stream
            })
            return res;
        } catch (e) {
            log.error("error saving logo: %s", e.message);
        }
    }, 'provider-repo')
}

and runInContext

export const runInContext = function (callback, repo) {
    let result;
    try {
        result = contextLib.run({
            repository: repo,
            branch: "master",
        }, callback);
    } catch (e) {
        log.info('Error: ' + e.message);
    }

    return result;
}

Any hints ?

Remove try... catch... and post the exception (stack trace) you will get.

2022-08-31 15:01:00,267 ERROR c.e.x.p.i.e.ExceptionRendererImpl - Internal Server Error
com.enonic.xp.web.WebException: null
        at com.enonic.xp.web.impl.exception.ExceptionMapperImpl.map(ExceptionMapperImpl.java:33)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.handleError(WebDispatcherServlet.java:151)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.doHandle(WebDispatcherServlet.java:145)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.service(WebDispatcherServlet.java:68)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at com.enonic.xp.web.impl.dispatch.mapping.ServletDefinitionImpl.service(ServletDefinitionImpl.java:40)
        at com.enonic.xp.web.impl.dispatch.pipeline.ServletPipelineImpl.service(ServletPipelineImpl.java:38)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:51)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.portal.impl.idprovider.IdProviderFilter.doHandle(IdProviderFilter.java:46)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.impl.context.ContextFilter.lambda$doHandle$0(ContextFilter.java:34)
        at com.enonic.xp.context.ContextImpl.callWith(ContextImpl.java:100)
        at com.enonic.xp.web.impl.context.ContextFilter.doHandle(ContextFilter.java:33)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.vhost.impl.VirtualHostFilter.doHandle(VirtualHostFilter.java:73)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.impl.dos.DosFilterWrapper.doFilter(DosFilterWrapper.java:65)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at org.eclipse.jetty.servlets.HeaderFilter.doFilter(HeaderFilter.java:117)
        at com.enonic.xp.web.impl.header.HeaderFilterWrapper.doHandle(HeaderFilterWrapper.java:51)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterPipelineImpl.filter(FilterPipelineImpl.java:37)
        at com.enonic.xp.web.impl.dispatch.DispatchServletImpl.service(DispatchServletImpl.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:722)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException: null
        at com.enonic.xp.core.impl.content.CreateContentCommand.getDefaultLanguage(CreateContentCommand.java:240)
        at com.enonic.xp.core.impl.content.CreateContentCommand.populateLanguage(CreateContentCommand.java:226)
        at com.enonic.xp.core.impl.content.CreateContentCommand.createContentTranslatorParams(CreateContentCommand.java:195)
        at com.enonic.xp.core.impl.content.CreateContentCommand.doExecute(CreateContentCommand.java:110)
        at com.enonic.xp.core.impl.content.CreateContentCommand.execute(CreateContentCommand.java:95)
        at com.enonic.xp.core.impl.content.CreateMediaCommand.doExecute(CreateMediaCommand.java:119)
        at com.enonic.xp.core.impl.content.CreateMediaCommand.execute(CreateMediaCommand.java:54)
        at com.enonic.xp.core.impl.content.ContentServiceImpl.create(ContentServiceImpl.java:322)
        at com.enonic.xp.lib.content.CreateMediaHandler.doExecute(CreateMediaHandler.java:44)
        at com.enonic.xp.lib.content.BaseContextHandler.execute(BaseContextHandler.java:14)
        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1171$15929A$content.L:1#createMedia(de.osde.app.provider:/lib/xp/content.js:408)
        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1169$2515$dataTools.L:1#L:1#L:1-3#saveLogo-1#L:1(de.osde.app.provider:/lib/dataTools.js:1)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
        at jdk.nashorn.javaadapters.java_util_concurrent_Callable.call(Unknown Source)
        at com.enonic.xp.context.ContextImpl.callWith(ContextImpl.java:100)
        at com.enonic.xp.lib.context.ContextHandlerBean.run(ContextHandlerBean.java:36)
        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1115$1231AA$context.L:1#run(de.osde.app.provider:/lib/xp/context.js:57)
        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1168$2116AA$dataTools.L:1#L:1#L:1-3#runInContext-1(de.osde.app.provider:/lib/dataTools.js:1)
        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1167$2433A$dataTools.L:1#L:1#L:1-3#saveLogo-1(de.osde.app.provider:/lib/dataTools.js:1)
        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1163$1064A$fileUpload.L:1#L:1#L:1-1#post(de.osde.app.provider:/services/fileUpload/fileUpload.js:1)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:657)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
        at jdk.scripting.nashorn/jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:120)
        at com.enonic.xp.script.impl.value.FunctionScriptValue.call(FunctionScriptValue.java:36)
        at com.enonic.xp.script.impl.executor.ScriptExportsImpl.executeMethod(ScriptExportsImpl.java:59)
        at com.enonic.xp.portal.impl.controller.ControllerScriptImpl.doExecute(ControllerScriptImpl.java:71)
        at com.enonic.xp.portal.impl.controller.ControllerScriptImpl.lambda$execute$0(ControllerScriptImpl.java:36)
        at com.enonic.xp.trace.Tracer.traceEx(Tracer.java:72)
        at com.enonic.xp.trace.Tracer.trace(Tracer.java:51)
        at com.enonic.xp.trace.Tracer.trace(Tracer.java:98)
        at com.enonic.xp.portal.impl.controller.ControllerScriptImpl.execute(ControllerScriptImpl.java:36)
        at com.enonic.xp.portal.impl.handler.service.ServiceHandlerWorker.execute(ServiceHandlerWorker.java:101)
        at com.enonic.xp.portal.impl.handler.service.ServiceHandler.doHandle(ServiceHandler.java:65)
        at com.enonic.xp.portal.impl.handler.service.ServiceHandler.doHandle(ServiceHandler.java:24)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:66)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.portal.impl.handler.mapping.MappingHandler.handle(MappingHandler.java:84)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.impl.handler.WebDispatcherImpl.dispatch(WebDispatcherImpl.java:35)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.doHandle(WebDispatcherServlet.java:140)
        ... 73 common frames omitted
2022-08-31 15:01:00,563 ERROR c.e.x.p.i.e.ExceptionRendererImpl - Internal Server Error
com.enonic.xp.web.WebException: null
        at com.enonic.xp.web.impl.exception.ExceptionMapperImpl.map(ExceptionMapperImpl.java:33)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.handleError(WebDispatcherServlet.java:151)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.doHandle(WebDispatcherServlet.java:145)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.service(WebDispatcherServlet.java:68)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at com.enonic.xp.web.impl.dispatch.mapping.ServletDefinitionImpl.service(ServletDefinitionImpl.java:40)
        at com.enonic.xp.web.impl.dispatch.pipeline.ServletPipelineImpl.service(ServletPipelineImpl.java:38)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:51)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.portal.impl.idprovider.IdProviderFilter.doHandle(IdProviderFilter.java:46)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.impl.context.ContextFilter.lambda$doHandle$0(ContextFilter.java:34)
        at com.enonic.xp.context.ContextImpl.callWith(ContextImpl.java:100)
        at com.enonic.xp.web.impl.context.ContextFilter.doHandle(ContextFilter.java:33)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.vhost.impl.VirtualHostFilter.doHandle(VirtualHostFilter.java:73)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.impl.dos.DosFilterWrapper.doFilter(DosFilterWrapper.java:65)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at org.eclipse.jetty.servlets.HeaderFilter.doFilter(HeaderFilter.java:117)
        at com.enonic.xp.web.impl.header.HeaderFilterWrapper.doHandle(HeaderFilterWrapper.java:51)
        at com.enonic.xp.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:31)
        at com.enonic.xp.web.filter.BaseWebFilter.doFilter(BaseWebFilter.java:33)
        at com.enonic.xp.web.impl.dispatch.mapping.FilterDefinitionImpl.doFilter(FilterDefinitionImpl.java:41)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:42)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterChainImpl.doFilter(FilterChainImpl.java:33)
        at com.enonic.xp.web.impl.dispatch.pipeline.FilterPipelineImpl.filter(FilterPipelineImpl.java:37)
        at com.enonic.xp.web.impl.dispatch.DispatchServletImpl.service(DispatchServletImpl.java:51)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:554)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:722)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.NullPointerException: null
        at com.enonic.xp.core.impl.content.CreateContentCommand.getDefaultLanguage(CreateContentCommand.java:240)
        at com.enonic.xp.core.impl.content.CreateContentCommand.populateLanguage(CreateContentCommand.java:226)
        at com.enonic.xp.core.impl.content.CreateContentCommand.createContentTranslatorParams(CreateContentCommand.java:195)
.provider:/lib/dataTools.js:1)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
        at jdk.nashorn.javaadapters.java_util_concurrent_Callable.call(Unknown Source)
        at com.enonic.xp.context.ContextImpl.callWith(ContextImpl.java:100)

        at jdk.scripting.nashorn.scripts/jdk.nashorn.internal.scripts.Script$Recompilation$1115$1231AA$context.L:1#run(de.osde.app.provider:/lib/xp/context.js:57)
.provider:/lib/dataTools.js:1)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:655)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:513)
        at jdk.scripting.nashorn/jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:527)
        at jdk.nashorn.javaadapters.java_util_concurrent_Callable.call(Unknown Source)
        at com.enonic.xp.context.ContextImpl.callWith(ContextImpl.java:100)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.portal.impl.handler.mapping.MappingHandler.handle(MappingHandler.java:84)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.handler.BaseWebHandler.handle(BaseWebHandler.java:75)
        at com.enonic.xp.web.impl.handler.WebHandlerChainImpl.handle(WebHandlerChainImpl.java:28)
        at com.enonic.xp.web.impl.handler.WebDispatcherImpl.dispatch(WebDispatcherImpl.java:35)
        at com.enonic.xp.web.impl.handler.WebDispatcherServlet.doHandle(WebDispatcherServlet.java:140)
        ... 73 common frames omitted


Hi!

  1. What is your XP version?
  2. What is the language of ‘provider-repo’ project?

XP-Version is 7.10.0
provider-repo is mostly written in TS (some components (like dataTools) are es6) based on webpack-starter.

Or do you mean the client? The client is written in React - but I test the API with Postman !
Using the Node-API I can save in repo including the image extracted with const stream = libPortal.getMultipartStream('file');!

‘provider-repo’ is a name of your repository/project, which you pass to your runInContext function. You either created it in Content Studio’s Settings section or via lib-project API.

I create the repo with Repo-API in a task:

const contextLib = require('/lib/xp/context');
const repoLib = require('/lib/xp/repo');

/***
 * execute a function in admin context
 * @param callback callback function to execute in the context
 * @returns {*} whtaever the function returns
 */
export const runInContext = function (callback: () => any) {
    let result;
    try {
        result = contextLib.run({
            principals: ["role:system.admin"],
            user: {login: 'su'}
        }, callback);
    } catch (e) {
        log.info('Error: ' + e.message);
    }

    return result;
}

const createRepo = (repoName: String) => {
    const repo = repoLib.create({
        id: repoName,
        rootPermissions: [
            {
                "principal": "role:system.everyone",
                "allow": [
                    "READ",
                    "CREATE",
                    "MODIFY",
                    "DELETE",
                    "PUBLISH",
                    "READ_PERMISSIONS",
                    "WRITE_PERMISSIONS"
                ],
                "deny": []
            }

        ],
        rootChildOrder: "_ts DESC"
    })

    log.info("created new repo: %s", repoName);
    return repo;
}

exports.run = function () {
    const repoName = 'provider-repo';
    if (!repoLib.get(repoName)) {
        //create a new repo
        const result = runInContext(() => createRepo(repoName));
    }
}

I you like I can share the app with github !

If you are creating a repository with intention of creating content in it, then you have to use project API. lib-project.create will create a new content project and an underlying repository which you will then use for creating a content.

1 Like

makes sense - thy for your support!

1 Like