#1823·linkwarden

Linkwarden iOS 1.4.2 hangs on startup / crashes and cannot change self-hosted server URL

Author: c1aytonnetCreated Aug 31, 2026Updated Sep 7, 2026
Labelsbug

TITLE Linkwarden iOS 1.4.2 hangs on startup / crashes and cannot change self-hosted server URL

DESCRIPTION I am unable to use the Linkwarden iOS app after the URL of my self-hosted Linkwarden instance changed.

On launch, Linkwarden normally displays a loading spinner indefinitely. On some attempts the app terminates/crashes. Because startup never completes, I cannot reach the app settings or login/setup screen to change the saved self-hosted server URL.

Deleting and reinstalling the application did not return it to the initial server configuration screen. The behavior persisted after an iPhone reboot.

ENVIRONMENT

  • Linkwarden iOS: 1.4.2 (build 153)
  • Bundle ID: app.linkwarden
  • iOS: 26.6.1 (23G83)
  • Device model: iPhone18,1
  • Installation: App Store
  • Linkwarden deployment: self-hosted

REPRODUCTION / TROUBLESHOOTING PERFORMED

  1. Launch Linkwarden with normal network connectivity. Result: app displays the loading spinner indefinitely on most attempts.

  2. Launch Linkwarden with Airplane Mode enabled and networking unavailable. Result: app remains on the spinner and eventually terminates.

  3. Launch Linkwarden with networking enabled. Result on one attempt: a "What's New" banner appeared, after which the app terminated.

  4. Delete Linkwarden using Delete App (not Offload App), then reinstall it from the App Store. Result: the problem persists. The app does not return to a usable initial server configuration screen.

  5. Reboot the iPhone and launch Linkwarden again with networking enabled. Result: the app remains on the loading spinner.

OBSERVED CRASH INFORMATION An iOS Analytics crash report was generated during testing. The attached sanitized report is from 2026-08-30 at approximately 09:28 local time.

Notable information from the report:

  • Exception: EXC_CRASH / SIGABRT
  • Signal: Abort trap: 6
  • App launch: approximately 09:28:04
  • Crash: approximately 09:28:19
  • Faulting/crashed thread is associated with com.meta.react.turbomodulemanager.queue
  • Stack includes React Native ObjCTurboModule activity

EXPECTED BEHAVIOR If a previously configured self-hosted Linkwarden server is unavailable or its URL has changed, the iOS app should allow the user to return to the login/server configuration screen and enter a different server URL.

The application should not become permanently stuck at startup because the previously configured server cannot be reached.

It would also be helpful to provide a supported way to reset or change the self-hosted server URL without requiring the previously configured server to be reachable.

PRIVACY / ATTACHMENT NOTE The attached .ips is a sanitized copy of the Apple crash report. UUID-like identifiers, including incident/session/application-container identifiers and device/vendor identifiers, have been replaced with redacted placeholders. The original report was also checked for obvious email addresses, URLs, private 192.168.x.x addresses, hostname/domain strings, passwords, tokens, cookies, and authorization strings; none were found by that check.

I can provide additional crash reports or perform additional testing if useful.

ATTACHMENT Linkwarden-2026-08-30-092819-sanitized.ips {"app_name":"Linkwarden","timestamp":"2026-08-30 09:28:19.00 -0500","app_version":"1.4.2","slice_uuid":"","adam_id":"6752550960","build_version":"153","bundleID":"app.linkwarden","platform":2,"share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"iPhone OS 26.6.1 (23G83)","roots_installed":0,"incident_id":"","name":"Linkwarden"} { "uptime" : 720000, "procRole" : "Foreground", "version" : 2, "userID" : 501, "deployVersion" : 210, "modelCode" : "iPhone18,1", "coalitionID" : 6660, "osVersion" : { "isEmbedded" : true, "train" : "iPhone OS 26.6.1", "releaseType" : "User", "build" : "23G83" }, "captureTime" : "2026-08-30 09:28:19.0901 -0500", "codeSigningMonitor" : 2, "incident" : "", "pid" : 20699, "translated" : false, "cpuType" : "ARM-64", "procLaunch" : "2026-08-30 09:28:04.1900 -0500", "procStartAbsTime" : 17295120392722, "procExitAbsTime" : 17295477865141, "procName" : "Linkwarden", "procPath" : "/private/var/containers/Bundle/Application//Linkwarden.app/Linkwarden", "bundleInfo" : {"CFBundleShortVersionString":"1.4.2","CFBundleVersion":"153","CFBundleIdentifier":"app.linkwarden","DTAppStoreToolsBuild":"17F106"}, "storeInfo" : {"itemID":"6752550960","storeCohortMetadata":"10|date=1788098400000&sf=143441&app=com.apple.AppStore&pgtp=Software&pgid=6752550960&prpg=Search_SearchTopResults&ctxt=Search&issrch=1&lngid=1","distributorID":"com.apple.AppStore","deviceIdentifierForVendor":"","softwareVersionExternalIdentifier":"889906769","applicationVariant":"1:iPhone18,1:26","thirdParty":true}, "parentProc" : "launchd", "parentPid" : 1, "coalitionName" : "app.linkwarden", "crashReporterKey" : "", "appleIntelligenceStatus" : {"state":"available"}, "developerMode" : 1, "bootProgressRegister" : "0x2000000c", "wasUnlockedSinceBoot" : 1, "isLocked" : 0, "codeSigningID" : "app.linkwarden", "codeSigningTeamID" : "FZ44882Y36", "codeSigningFlags" : 570450689, "codeSigningValidationCategory" : 4, "codeSigningTrustLevel" : 5, "codeSigningAuxiliaryInfo" : 0, "instructionByteStream" : {"beforePC":"fyMD1f17v6n9AwCR0+3/l78DAJH9e8Go/w9f1sADX9YQKYDSARAA1A==","atPC":"AwEAVH8jA9X9e7+p/QMAkcjt/5e/AwCR/XvBqP8PX9bAA1/WECeA0g=="}, "bootSessionUUID" : "", "basebandVersion" : "1.70.01", "exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGABRT"}, "termination" : {"flags":0,"code":6,"namespace":"SIGNAL","indicator":"Abort trap: 6","byProc":"Linkwarden","byPid":20699}, "asi" : {"libsystem_c.dylib":["abort() called"]}, "faultingThread" : 3, "threads" : [{"id":13615480,"threadState":{"x":[{"value":4461430272},{"value":8818049234,"objc-selector":"_responderWindow"},{"value":259},{"value":259},{"value":16},{"value":0},{"value":4380430512},{"value":18446726482597246976},{"value":8575230624,"symbolLocation":224,"symbol":"main_thread"},{"value":8},{"value":7701436842241689088},{"value":143833717647310848},{"value":127},{"value":4533970912},{"value":288230380514811811,"symbolLocation":288230376151711747,"symbol":"OBJC_CLASS$RCTViewComponentView"},{"value":4363100064,"symbolLocation":0,"symbol":"OBJC_CLASS$RCTViewComponentView"},{"value":4363100064,"symbolLocation":0,"symbol":"OBJC_CLASS$_RCTViewComponentView"},{"value":8601791632},{"value":0},{"value":4461430272},{"value":4461417472},{"value":4380543760},{"value":4461417472},{"value":4462514688},{"value":1},{"value":8525942784,"symbolLocation":36,"symbol":"_MergedGlobals.113"},{"value":8525942784,"symbolLocation":36,"symbol":"_MergedGlobals.113"},{"value":8525942784,"symbolLocation":36,"symbol":"_MergedGlobals.113"},{"value":88}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6902234260},"cpsr":{"value":536870912},"fp":{"value":6126721920},"sp":{"value":6126721904},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":6750630952},"far":{"value":0}},"queue":"com.apple.main-thread","frames":[{"imageOffset":13352,"symbol":"objc_msgSend","symbolLocation":40,"imageIndex":5},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":31892,"symbol":"-[UIResponder _responderWindow]","symbolLocation":36,"imageIndex":6},{"imageOffset":3208952,"symbol":"-[UIResponder _resignIfContainsFirstResponder]","symbolLocation":28,"imageIndex":6},{"imageOffset":488052,"symbol":"-[UIView(Hierarchy) _willMoveToWindow:]","symbolLocation":488,"imageIndex":6},{"imageOffset":152056,"symbol":"__UIViewWillBeRemovedFromSuperview","symbolLocation":692,"imageIndex":6},{"imageOffset":151084,"symbol":"-[UIView(Hierarchy) removeFromSuperview]","symbolLocation":120,"imageIndex":6},{"imageOffset":5501276,"imageIndex":0},{"imageOffset":5555140,"imageIndex":0},{"imageOffset":2166124,"symbol":"std::__1::__function::__func<-[RCTMountingManager performTransaction:]::$_1, std::__1::allocator<-[RCTMountingManager performTransaction:]::$_1>, void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)>::operator()(facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)","symbolLocation":764,"imageIndex":1},{"imageOffset":1721428,"symbol":"facebook::react::TelemetryController::pullTransaction(std::__1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&, std::__1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&, std::__1::function<void (facebook::react::MountingTransaction const&, facebook::react::SurfaceTelemetry const&)> const&) const","symbolLocation":380,"imageIndex":1},{"imageOffset":2160836,"symbol":"-[RCTMountingManager performTransaction:]","symbolLocation":216,"imageIndex":1},{"imageOffset":2160556,"symbol":"-[RCTMountingManager initiateTransaction:]","symbolLocation":132,"imageIndex":1},{"imageOffset":6568,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":7},{"imageOffset":111076,"symbol":"_dispatch_client_callout","symbolLocation":16,"imageIndex":7},{"imageOffset":232976,"symbol":"_dispatch_main_queue_drain.cold.6","symbolLocation":832,"imageIndex":7},{"imageOffset":67940,"symbol":"_dispatch_main_queue_drain","symbolLocation":176,"imageIndex":7},{"imageOffset":67748,"symbol":"_dispatch_main_queue_callback_4CF","symbolLocation":44,"imageIndex":7},{"imageOffset":663656,"symbol":"CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE","symbolLocation":16,"imageIndex":8},{"imageOffset":194052,"symbol":"__CFRunLoopRun","symbolLocation":1944,"imageIndex":8},{"imageOffset":189772,"symbol":"_CFRunLoopRunSpecificWithOptions","symbolLocation":532,"imageIndex":8},{"imageOffset":5272,"symbol":"GSEventRunModal","symbolLocation":120,"imageIndex":9},{"imageOffset":1185392,"symbol":"-[UIApplication _run]","symbolLocation":796,"imageIndex":6},{"imageOffset":573784,"symbol":"UIApplicationMain","symbolLocation":332,"imageIndex":6},{"imageOffset":21932,"imageIndex":0},{"imageOffset":19484,"symbol":"start","symbolLocation":6928,"imageIndex":10}]},{"id":13615485,"frames":[],"threadState":{"x":[{"value":6127857664},{"value":6159},{"value":6127321088},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":0},"fp":{"value":0},"sp":{"value":6127857664},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":8409442488},"far":{"value":0}}},{"id":13615486,"frames":[],"threadState":{"x":[{"value":6128431104},{"value":5891},{"value":6127894528},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":0},"fp":{"value":0},"sp":{"value":6128431104},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":8409442488},"far":{"value":0}}},{"triggered":true,"id":13615488,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":6751939238},{"value":6129575872},{"value":100},{"value":18446726482597246976},{"value":675244386431575867},{"value":675244383524443963},{"value":2},{"value":4294967293},{"value":0},{"value":0},{"value":0},{"value":0},{"value":328},{"value":6129577984},{"value":0},{"value":6},{"value":8707},{"value":6129578208},{"value":4849336966747728640},{"value":4638919168},{"value":4548499072},{"value":0},{"value":0},{"value":0},{"value":276}],"flavor":"ARM_THREAD_STATE64","lr":{"value":8409470940},"cpsr":{"value":1073741824},"fp":{"value":6129575728},"sp":{"value":6129575696},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":9752150480,"matchesCrashFrame":1},"far":{"value":0}},"queue":"com.meta.react.turbomodulemanager.queue","frames":[{"imageOffset":45520,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":12},{"imageOffset":30684,"symbol":"pthread_kill","symbolLocation":268,"imageIndex":13},{"imageOffset":487372,"symbol":"abort","symbolLocation":148,"imageIndex":14},{"imageOffset":32724,"symbol":"__abort_message","symbolLocation":132,"imageIndex":15},{"imageOffset":82436,"symbol":"std::__terminate(void ()())","symbolLocation":28,"imageIndex":15},{"imageOffset":32204,"symbol":"__cxa_rethrow","symbolLocation":188,"imageIndex":15},{"imageOffset":260952,"symbol":"objc_exception_rethrow","symbolLocation":44,"imageIndex":5},{"imageOffset":3192092,"symbol":"invocation function for block in facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const, NSInvocation*, NSMutableArray*)","symbolLocation":192,"imageIndex":1},{"imageOffset":3212456,"symbol":"std::__1::__function::__func<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1, std::__1::allocator<facebook::react::ObjCTurboModule::performVoidMethodInvocation(facebook::jsi::Runtime&, char const*, NSInvocation*, NSMutableArray*)::$_1>, void ()>::operator()()","symbolLocation":88,"imageIndex":1},{"imageOffset":6568,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":7},{"imageOffset":111076,"symbol":"_dispatch_client_callout","symbolLocation":16,"imageIndex":7},{"imageOffset":40880,"symbol":"_dispatch_lane_serial_drain","symbolLocation":740,"imageIndex":7},{"imageOffset":43692,"symbol":"_dispatch_lane_invoke","symbolLocation":392,"imageIndex":7},{"imageOffset":85420,"symbol":"_dispatch_root_queue_drain_deferred_wlh","symbolLocation":284,"imageIndex":7},{"imageOffset":83628,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":720,"imageIndex":7},{"imageOffset":5040,"symbol":"_pthread_wqthread","symbolLocation":292,"imageIndex":13},{"imageOffset":2240,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":13}]},{"id":13615489,"frames":[],"threadState":{"x":[{"value":6130151424},{"value":11523},{"value":6129614848},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":0},"fp":{"value":0},"sp":{"value":6130151424},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":8409442488},"far":{"value":0}}},{"id":13615491,"name":"com.apple.uikit.eventfetch-thread","threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":60486024429568},{"value":2162692},{"value":60486024429568},{"value":2},{"value":4294967295},{"value":0},{"value":0},{"value":2},{"value":0},{"value":0},{"value":14083},{"value":4378807080},{"value":4459364352},{"value":18446744073709551569},{"value":18446744072367376383},{"value":0},{"value":4294967295},{"value":2},{"value":60486024429568},{"value":2162692},{"value":60486024429568},{"value":21592279046},{"value":6131293576},{"value":8589934592},{"value":18446744073709550527},{"value":11054039040,"symbolLocation":0,"symbol":"_libkernel_string_functions"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":9752122124},"cpsr":{"value":0},"fp":{"value":6131293424},"sp":{"value":6131293344},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":9752108244},"far":{"value":0}},"frames":[{"imageOffset":3284,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":12},{"imageOffset":17164,"symbol":"mach_msg2_internal","symbolLocation":76,"imageIndex":12},{"imageOffset":16940,"symbol":"mach_msg_overwrite","symbolLocation":424,"imageIndex":12},{"imageOffset":16504,"symbol":"mach_msg","symbolLocation":24,"imageIndex":12},{"imageOffset":414580,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":8},{"imageOffset":193296,"symbol":"__CFRunLoopRun","symbolLocation":1188,"imageIndex":8},{"imageOffset":189772,"symbol":"_CFRunLoopRunSpecificWithOptions","symbolLocation":532,"imageIndex":8},{"imageOffset":44272,"symbol":"-[NSRunLoop(NSRunLoop) runMode:beforeDate:]","symbolLocation":212,"imageIndex":16},{"imageOffset":43992,"symbol":"-[NSRunLoop(NSRunLoop) runUntilDate:]","symbolLocation":64,"imageIndex":16},{"imageOffset":945836,"symbol":"-[UIEventFetcher threadMain]","symbolLocation":420,"imageIndex":6},{"imageOffset":583956,"symbol":"NSThread__start","symbolLocation":732,"imageIndex":16},{"imageOffset":17464,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":13},{"imageOffset":2252,"symbol":"thread_start","symbolLocation":8,"imageIndex":13}]},{"id":13615513,"name":"com.facebook.react.runtime.JavaScript","threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":97869419773952},{"value":0},{"value":97869419773952},{"value":2},{"value":4294967295},{"value":0},{"value":0},{"value":2},{"value":0},{"value":0},{"value":22787},{"value":3072},{"value":13194139536384},{"value":18446744073709551569},{"value":8601846648},{"value":0},{"value":4294967295},{"value":2},{"value":97869419773952},{"value":0},{"value":97869419773952},{"value":21592279046},{"value":6131867048},{"value":8589934592},{"value":18446744073709550527},{"value":11054039040,"symbolLocation":0,"symbol":"_libkernel_string_functions"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":9752122124},"cpsr":{"value":0},"fp":{"value":6131866896},"sp":{"value":6131866816},"esr":{"value":1442840704,"description":"(Syscall)"},"pc":{"value":9752108244},"far":{"value":0}},"frames":[{"imageOffset":3284,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":12},{"imageOffset":17164,"symbol":"mach_msg2_internal","symbolLocation":76,"imageIndex":12},{"imageOffset":16940,"symbol":"mach_msg_overwrite","symbolLocation":424,"imageIndex":12},{"imageOffset":16504,"symbol":"mach_msg","symbolLocation":24,"imageIndex":12},{"imageOffset":414580,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":8},{"imageOffset":193296,"symbol":"__CFRunLoopRun","symbolLocation":1188,"imageIndex":8},{"imageOffset":189772,"symbol":"_CFRunLoopRunSpecificWithOptions","symbolLocation":532,"imageIndex":8},{"imageOffset":2756372,"symbol":"+[RCTJSThreadManager runRunLoop]","symbolLocation":252,"imageIndex":1},{"imageOffset":583956,"symbol":"NSThread__start","symbolLocation":732,"imageIndex":16},{"imageOffset":17464,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":13},{"imageOffset":2252,"symbol":"thread_start","symbolLocation":8,"imageIndex":13}]},{"id":13615515,"name":"hades","threadState":{"x":[{"value":260},{"value":0},{"value":0},{"value":0},{"value":0},{"value":160},{"value":0},{"value":0},{"value":6132444840},{"value":0},{"value":0},{"value":2},{"value":2},{"value":0},{