{"record":{"id":"916e1b2155cbd9cd","repo":"microg/GmsCore","slug":"servicehandler-not-set-did-you-override-oncreate","errorCode":null,"errorMessage":"serviceHandler not set, did you override onCreate() but forget to call super.onCreate()?","messagePattern":"serviceHandler not set, did you override onCreate\\(\\) but forget to call super\\.onCreate\\(\\)\\?","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"play-services-wearable/src/main/java/com/google/android/gms/wearable/WearableListenerService.java","lineNumber":98,"sourceCode":"\n    @Override\n    public void onCreate() {\n        super.onCreate();\n        handlerThread = new HandlerThread(\"WearableListenerService\");\n        handlerThread.start();\n        serviceHandler = new ServiceHandler(handlerThread.getLooper());\n        listener = new Listener();\n    }\n\n    @Override\n    public void onDataChanged(DataEventBuffer dataEvents) {\n    }\n\n    @Override\n    public void onDestroy() {\n        synchronized (lock) {\n            if (serviceHandler == null) {\n                throw new IllegalStateException(\"serviceHandler not set, did you override onCreate() but forget to call super.onCreate()?\");\n            }\n            serviceHandler.getLooper().quit();\n        }\n        super.onDestroy();\n    }\n\n    @PublicApi(exclude = true)\n    public void onEntityUpdate(AmsEntityUpdate entityUpdate) {\n    }\n\n    @Override\n    public void onInputClosed(Channel channel, @ChannelApi.CloseReason int closeReason, int appSpecificErrorCode) {\n    }\n\n    @Override\n    public void onMessageReceived(MessageEvent messageEvent) {\n    }\n","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/microg/GmsCore/blob/157c9d86ac46c195a86c2f15ab55c84036223f95/play-services-wearable/src/main/java/com/google/android/gms/wearable/WearableListenerService.java#L80-L116","documentation":"Lifecycle guard in WearableListenerService.onDestroy: serviceHandler is null, meaning onCreate() never ran its initialization — the subclass overrode onCreate() without calling super.onCreate(), so the handler thread and listener were never created.","triggerScenarios":"Thrown at play-services-wearable/src/main/java/com/google/android/gms/wearable/WearableListenerService.java:98 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Call super.onCreate() in the overriding onCreate()","Do not invoke onDestroy() lifecycle paths before onCreate completes"],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"157c9d86ac46c195a86c2f15ab55c84036223f95","analyzedAt":"2026-09-06T17:27:33.892Z","contentChangedAt":"2026-09-06T17:27:33.892Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}