Describe the bug
When plugin a brand new lunii, I have the error : Unsupported device metadata format version: 6
To Reproduce
Steps to reproduce the behavior:
Get a new Lunii (april 2024)
Start the ./studio-web-ui-0.3.1/studio-linux.sh script
Plug the Lunii and access the localhost:8080 url
Expected behavior
No error and get the Lunii content
Screenshots
not relevant
Logs
Check the logs in the console for errors, if any. Join the studio-latest.log file if relevant.
2024-04-19 21:41:30,611 [INFO ] [studio.webui.service.StoryTellerService] [StoryTellerService.java:53]: Setting up story teller driver
2024-04-19 21:41:30,615 [DEBUG] [studio.driver.raw.RawStoryTellerAsyncDriver] [RawStoryTellerAsyncDriver.java:44]: Registering hotplug listener
2024-04-19 21:41:30,616 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:48]: Initializing libusb...
2024-04-19 21:41:30,623 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:64]: Hotplug is supported. Registering hotplug callback(s)...
2024-04-19 21:41:30,623 [DEBUG] [studio.driver.LibUsbAsyncEventsWorker] [LibUsbAsyncEventsWorker.java:32]: Starting worker thread to handle libusb async events...
2024-04-19 21:41:30,627 [DEBUG] [studio.driver.fs.FsStoryTellerAsyncDriver] [FsStoryTellerAsyncDriver.java:55]: Registering hotplug listener
2024-04-19 21:41:30,627 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:48]: Initializing libusb...
2024-04-19 21:41:30,628 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:64]: Hotplug is supported. Registering hotplug callback(s)...
2024-04-19 21:41:30,629 [DEBUG] [studio.driver.LibUsbAsyncEventsWorker] [LibUsbAsyncEventsWorker.java:32]: Starting worker thread to handle libusb async events...
2024-04-19 21:41:30,629 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:115]: Hotplug event callback (0483:a341): 1
2024-04-19 21:41:30,632 [DEBUG] [studio.driver.fs.FsStoryTellerAsyncDriver] [FsStoryTellerAsyncDriver.java:60]: Waiting for device partition...
2024-04-19 21:41:30,711 [INFO ] [studio.webui.MainVerticle] [MainVerticle.java:106]: Opening URL in default browser...
2024-04-19 21:41:30,831 [INFO ] [io.vertx.core.impl.launcher.commands.VertxIsolatedDeployer] [VertxIsolatedDeployer.java:81]: Succeeded in deploying verticle
2024-04-19 21:41:31,723 [INFO ] [studio.driver.fs.FsStoryTellerAsyncDriver] [FsStoryTellerAsyncDriver.java:69]: FS device partition located: /media/docker/LUNII
2024-04-19 21:41:31,730 [INFO ] [studio.webui.service.StoryTellerService] [StoryTellerService.java:113]: Device 2.x plugged
2024-04-19 21:41:31,741 [ERROR] [studio.webui.service.StoryTellerService] [StoryTellerService.java:118]: Failed to plug device 2.x
studio.driver.StoryTellerException: Unsupported device metadata format version: 6
at studio.driver.fs.FsStoryTellerAsyncDriver.getDeviceInfos(FsStoryTellerAsyncDriver.java:122)
at studio.webui.service.StoryTellerService$2.lambda$onDevicePlugged$1(StoryTellerService.java:115)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1736)
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(CompletableFuture.java:1728)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
2024-04-19 21:42:14,137 [ERROR] [studio.webui.MainVerticle] [MainVerticle.java:96]: Exception thrown
java.nio.channels.ClosedChannelException
at io.netty.channel.AbstractChannel$AbstractUnsafe.newClosedChannelException(AbstractChannel.java:957)
at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:865)
at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702)
at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:112)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:709)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:792)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:702)
at io.netty.channel.ChannelDuplexHandler.write(ChannelDuplexHandler.java:115)
at io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.write(WebSocketServerExtensionHandler.java:151)
at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764)
at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
at io.vertx.core.net.impl.ConnectionBase.write(ConnectionBase.java:124)
at io.vertx.core.net.impl.ConnectionBase.writeToChannel(ConnectionBase.java:205)
at io.vertx.core.http.impl.Http1xServerConnection.writeToChannel(Http1xServerConnection.java:267)
at io.vertx.core.net.impl.ConnectionBase.sendFileRegion(ConnectionBase.java:417)
at io.vertx.core.net.impl.ConnectionBase.sendFile(ConnectionBase.java:444)
at io.vertx.core.http.impl.Http1xServerConnection.sendFile(Http1xServerConnection.java:456)
at io.vertx.core.http.impl.HttpServerResponseImpl.doSendFile(HttpServerResponseImpl.java:514)
at io.vertx.core.http.impl.HttpServerResponseImpl.sendFile(HttpServerResponseImpl.java:433)
at io.vertx.core.http.HttpServerResponse.sendFile(HttpServerResponse.java:365)
at io.vertx.core.http.HttpServerResponse.sendFile(HttpServerResponse.java:351)
at io.vertx.ext.web.handler.impl.StaticHandlerImpl.lambda$sendFile$11(StaticHandlerImpl.java:457)
at io.vertx.ext.web.handler.impl.StaticHandlerImpl.wrapInTCCLSwitch(StaticHandlerImpl.java:266)
at io.vertx.ext.web.handler.impl.StaticHandlerImpl.sendFile(StaticHandlerImpl.java:392)
at io.vertx.ext.web.handler.impl.StaticHandlerImpl.lambda$null$0(StaticHandlerImpl.java:231)
at io.vertx.ext.web.handler.impl.StaticHandlerImpl.getFileProps(StaticHandlerImpl.java:299)
at io.vertx.ext.web.handler.impl.StaticHandlerImpl.lambda$sendStatic$1(StaticHandlerImpl.java:208)
at io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:330)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
2024-04-19 21:42:14,352 [ERROR] [studio.webui.api.DeviceController] [DeviceController.java:34]: Failed to read device infos
java.util.concurrent.CompletionException: studio.driver.StoryTellerException: Unsupported device metadata format version: 6
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:670)
at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)
at studio.webui.service.StoryTellerService.deviceInfosV2(StoryTellerService.java:180)
at studio.webui.service.StoryTellerService.deviceInfos(StoryTellerService.java:156)
at studio.webui.api.DeviceController.lambda$apiRouter$3(DeviceController.java:31)
at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1034)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:160)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:235)
at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1034)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:160)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.doEnd(BodyHandlerImpl.java:296)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.end(BodyHandlerImpl.java:276)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl.lambda$handle$0(BodyHandlerImpl.java:87)
at io.vertx.core.http.impl.HttpServerRequestImpl.onEnd(HttpServerRequestImpl.java:521)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:507)
at io.vertx.core.http.impl.Http1xServerConnection.handleEnd(Http1xServerConnection.java:176)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:138)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:232)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:173)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
at io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.channelRead(WebSocketServerExtensionHandler.java:101)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: studio.driver.StoryTellerException: Unsupported device metadata format version: 6
at studio.driver.fs.FsStoryTellerAsyncDriver.getDeviceInfos(FsStoryTellerAsyncDriver.java:122)
at studio.webui.service.StoryTellerService.deviceInfosV2(StoryTellerService.java:179)
... 46 more
2024-04-19 21:42:14,354 [ERROR] [studio.webui.MainVerticle] [MainVerticle.java:96]: Exception thrown
java.util.concurrent.CompletionException: studio.driver.StoryTellerException: Unsupported device metadata format version: 6
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
at java.base/java.util.concurrent.CompletableFuture.uniApplyNow(CompletableFuture.java:670)
at java.base/java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:658)
at java.base/java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:2100)
at studio.webui.service.StoryTellerService.deviceInfosV2(StoryTellerService.java:180)
at studio.webui.service.StoryTellerService.deviceInfos(StoryTellerService.java:156)
at studio.webui.api.DeviceController.lambda$apiRouter$3(DeviceController.java:31)
at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1034)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:160)
at io.vertx.ext.web.impl.RouterImpl.handleContext(RouterImpl.java:235)
at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1034)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:131)
at io.vertx.ext.web.impl.RoutingContextWrapper.next(RoutingContextWrapper.java:160)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.doEnd(BodyHandlerImpl.java:296)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.end(BodyHandlerImpl.java:276)
at io.vertx.ext.web.handler.impl.BodyHandlerImpl.lambda$handle$0(BodyHandlerImpl.java:87)
at io.vertx.core.http.impl.HttpServerRequestImpl.onEnd(HttpServerRequestImpl.java:521)
at io.vertx.core.http.impl.HttpServerRequestImpl.handleEnd(HttpServerRequestImpl.java:507)
at io.vertx.core.http.impl.Http1xServerConnection.handleEnd(Http1xServerConnection.java:176)
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:138)
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369)
at io.vertx.core.impl.EventLoopContext.execute(EventLoopContext.java:43)
at io.vertx.core.impl.ContextImpl.executeFromIO(ContextImpl.java:232)
at io.vertx.core.net.impl.VertxHandler.channelRead(VertxHandler.java:173)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
at io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensionHandler.channelRead(WebSocketServerExtensionHandler.java:101)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: studio.driver.StoryTellerException: Unsupported device metadata format version: 6
at studio.driver.fs.FsStoryTellerAsyncDriver.getDeviceInfos(FsStoryTellerAsyncDriver.java:122)
at studio.webui.service.StoryTellerService.deviceInfosV2(StoryTellerService.java:179)
... 46 more
2024-04-19 21:45:11,382 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:92]: Stopping async event handling worker thread
2024-04-19 21:45:11,382 [INFO ] [studio.driver.LibUsbDetectionHelper] [LibUsbDetectionHelper.java:92]: Stopping async event handling worker thread
Desktop and environment (please complete the following information):
OS: Linux x86_64
Browser Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0
Java version: [e.g. JDK 11.0.6]
Maven version: [e.g. 3.6.0]
STUdio application version: studio-web-ui-0.3.1
Additional context
I have a docker installation to have everything working. My setup works well on an older Lunii (thank you very much by the way), it seems to be an issue with the new version of the firwmare (3.1.5)...
Describe the bug When plugin a brand new lunii, I have the error : Unsupported device metadata format version: 6
To Reproduce Steps to reproduce the behavior:
Expected behavior No error and get the Lunii content
Screenshots not relevant
Logs Check the logs in the console for errors, if any. Join the
studio-latest.log
file if relevant.Desktop and environment (please complete the following information):
Additional context I have a docker installation to have everything working. My setup works well on an older Lunii (thank you very much by the way), it seems to be an issue with the new version of the firwmare (3.1.5)...