objectbox-dart
objectbox-dart copied to clipboard
ObjectBox Admin Docker requires restart to see updated data on macOS
Build info
- objectbox version: 4.1.0 [✓] Flutter (Channel stable, 3.29.2, on macOS 15.3.2 24D81 darwin-arm64, locale en-US) [563ms] • Flutter version 3.29.2 • Upstream repository https://github.com/flutter/flutter.git • Framework revision c236373904 (12 days ago), 2025-03-13 16:17:06 -0400 • Engine revision 18b71d647a • Dart version 3.7.2 • DevTools version 2.42.3
Issue 1:
When saving data to DB I get the error below:
[ERROR:flutter/runtime/dart_vm_initializer.cc(40)] Unhandled Exception: StorageException: failed to create transaction: Could not begin write transaction (22) (OBX_ERROR code 10199)
#0 ObjectBoxNativeError.throwMapped (package:objectbox/src/native/bindings/helpers.dart:99:11)
#1 throwLatestNativeError (package:objectbox/src/native/bindings/helpers.dart:54:48)
#2 checkObxPtr (package:objectbox/src/native/bindings/helpers.dart:31:5)
#3 new Transaction (package:objectbox/src/native/transaction.dart:33:5)
#4 Store._runInTransaction (package:objectbox/src/native/store.dart:782:32)
#5 InternalStoreAccess.runInTransaction (package:objectbox/src/native/store.dart:906:13)
#6 Box.put (package:objectbox/src/native/box.dart:104:34)
#7 Box._putAsyncCallback (package:objectbox/src/native/box.dart:113:22)
#8 _RunAsyncIsolateConfig.runCallback (package:objectbox/src/native/store.dart:971:51)
#9 Store._callFunctionWithStoreInIsolate (package:objectbox/src/native/store<…>
Issue 2
Happens from time to time.
#0 ObjectBoxNativeError.throwMapped (package:objectbox/src/native/bindings/helpers.dart:99:11)
#1 throwLatestNativeError (package:objectbox/src/native/bindings/helpers.dart:54:48)
#2 checkObxPtr (package:objectbox/src/native/bindings/helpers.dart:31:5)
#3 new Box._ (package:objectbox/src/native/box.dart:62:5)
#4 InternalBoxAccess.create (package:objectbox/src/native/box.dart:660:11)
#5 Store.box (package:objectbox/src/native/store.dart:601:44)
#6 new Box (package:objectbox/src/native/box.dart:54:37)
#7 new UserRepo (package:my_app/data/repos/user.repo.dart:10:47)
#8 App.build.<anonymous closure> (package:my_app/ui/app.dart:48:53)
#9 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:749:36)
#10 _InheritedProviderScopeElement.value (package:provider/src/inherited_provider.dart:603:33)
#11 Provider.of (package:provider/src/provider.dart:337:37)
#12 ReadContext.read (package:provider/src/provider.dart:683:21)
#13 App.build.<anonymous closure> (package:my_app/ui/app.dart:60:48)
#14 _CreateInheritedProviderState.value (package:provider/src/inherited_provider.dart:749:36)
#15 _InheritedProviderScopeElement.value (package:provider/src/inherited_provider.dart:603:33)
#16 Provider.of (package:provider/src/provider.dart:337:37)
#17 ReadContext.read (package:provider/src/provider.dart:683:21)
#18 _BlocBuilderBaseState.initState (package:flutter_bloc/src/bloc_builder.dart:152:36)
#19 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5860:55)
#20 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5709:5)
... Normal element mounting (7 frames)
#27 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4555:16)
#28 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7178:36)
#29 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7194:32)
... Normal element mounting (18 frames)
#47 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4555:16)
#48 Element.updateChild (package:flutter/src/widgets/framework.dart:4020:18)
#49 _LayoutBuilderElement._rebuildWithConstraints.updateChildCallback (package:flutter/src/widgets/layout_builder.dart:217:18)
#50 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3056:19)
#51 _LayoutBuilderElement._rebuildWithConstraints (package:flutter/src/widgets/layout_builder.dart:240:12)
#52 RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2827:17)
#53 PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1161:15)
#54 RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2826:14)
#55 RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:293:5)
#56 _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:390:5)
#57 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#58 MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:180:12)
#59 _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1118:7)
#60 MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:249:7)
#61 RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:419:14)
#62 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#63 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#64 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#65 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#66 _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1483:11)
#67 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#68 RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:243:12)
#69 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#70 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#71 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#72 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#73 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#74 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#75 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#76 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#77 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#78 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#79 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#80 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#81 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:646:43)
#82 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:673:12)
#83 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#84 ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:62:11)
#85 RenderStack._computeSize (package:flutter/src/rendering/stack.dart:646:43)
#86 RenderStack.performLayout (package:flutter/src/rendering/stack.dart:673:12)
#87 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#88 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#89 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#90 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#91 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#92 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#93 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#94 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#95 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#96 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#97 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#98 RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3748:14)
#99 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#100 RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:115:18)
#101 RenderObject.layout (package:flutter/src/rendering/object.dart:2715:7)
#102 _RenderTheaterMixin.layoutChild (package:flutter/src/widgets/overlay.dart:1076:13)
#103 _RenderTheater.performLayout (package:flutter/src/widgets/overlay.dart:1422:9)
#104 RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2548:7)
#105 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1112:18)
#106 PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1125:15)
#107 RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:616:23)
#108 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1231:13)
#109 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:482:5)
#110 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1442:15)
#111 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1355:9)
#112 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1208:5)
#113 _invoke (dart:ui/hooks.dart:316:13)
#114 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:428:5)
#115 _drawFrame (dart:ui/hooks.dart:288:31)
Issue 3
I'm using ObjectBox Admin with objectbox-admin.sh and it works, but the data is not updated on browser refresh it gets updated only after I restart the script.
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
Starting server on http://0.0.0.0:8081
001-19:11:28.9413 [INFO ] [SvHttp] Running in single-store mode, store path: /db
001-19:11:28.9418 [INFO ] [SvHttp] Listening on http://0.0.0.0:8081
001-19:11:28.9418 [INFO ] [SvHttp] User management: enabled
001-19:11:28.9464 [INFO ] [SvHttp] HttpServer listening on all interfaces, port 8081
Steps to reproduce it
The issue can be reproduced in this repo (it only happens from time to time)
- clone the project
- run
flutter pub get - run
dart run build_runner watch --delete-conflicting-outputs - tap on generate a single user or generate 100k users
- tap on a user then on a team
Thanks for reporting.
As for 1) please try to narrow down what code is causing this exception and then share it with us. Otherwise I'm not sure how to find the cause.
As for 2) in the linked repository I could not find a file package:my_app/data/repos/user.repo.dart. Also the actually thrown exception and message is required so we can tell you what the issue is.
As for 3) can you share where exactly you are running this script? From within a macOS 15.3.2 terminal or from within a Linux Docker container? I suspect that live updates only work when running the Admin Docker container on a Linux operating system (for example database files stored on Windows NTFS also do not support live updates.)
- I run
objectbox-admin.sh <path to the db folder>from my macos terminal
@chirastefan Thanks, I updated the note at https://docs.objectbox.io/data-browser#run-via-docker that on macOS Admin also needs to be restarted to see updates.
Note: I labeled this issue with "more info required" so it will auto-close in a few days if there are no follow-up comments.
@chirastefan Thanks, I updated the note at https://docs.objectbox.io/data-browser#run-via-docker that on macOS Admin also needs to be restarted to see updates.
Note: I labeled this issue with "more info required" so it will auto-close in a few days if there are no follow-up comments.
Do you have any plans to resolve this so there's no need for a restart?
@chirastefan IIRC we briefly looked into this and it's an operating system issue (the Docker volume does not receive file update notifications) that at this time we are not sure how to resolve. If anyone has tips, they are welcome.
Note: I changed the title of this issue to reflect this is asking to fix this Admin issue.
Edit: for our reference, this is internal issue objectbox/objectbox#1101.