This is a very easy question to answer for anyone who has any knowledge of Home Assistant widget functionality. Please help!
When I got HA Green, I added an action button widget on my android home screen to turn on my study LIFX light, and it worked well. When I added visual studio and worked on some customisations, I went back to modify the action button widget, but now I receive an error message on my android widget “A custom component is preventing action data from loading”. I uninstalled visual studio and I still get this error message.
I just want to have an action widget that turns on my study light, so I typed in “button.light.study” and variations of that, and it doesn’t work any more.
Here are the details in a button card configuration that work in HA Green.
show_name: true
show_icon: true
type: button
entity: light.study
icon: mdi:toggle-switch-variant
All I want to do is replicate this action in an action widget button on Android. Since action data no longer loads, I have no cues as to what I should type as an action, and I have not found any information online that helps.
Does anyone have any knowledge to help solve this simple question?
Not a simple question in fact. I think it’s down to a HACS installed custom component. Did you always have this issue? Or did it start after adding something in HACs. It’s a nuisance disabling then re-activating custom components - but might be the way forward.
You can enter the ‘Action’ field manually. For example:
Got the same problem today after updating to Core 2025.11.1. The only solution was rolling back to Core 2025.10.4. Not sure yet why it happened or how it relates to HACS components.
Same problem here, although i can’t pinpoint it to the Core 2025.11 update
Tried some troubleshooting, without any luck. Disabled all custom components including HACS itself, but the issue remains. custom_components folder is completely empty but i still get the error message.
Interestingly enough this only happens for the Trigger widget. The “Entity state” widget enumerates just fine.
–
HA Core 2025.11.1 on HA OS 16.3
Companion 2025.8.7-full on Android 16 (Samsung OneUI 8)
EDIT: Companion Log
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: Unable to load actions from Home Assistant
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: kotlinx.serialization.MissingFieldException: Field 'description' is required for type with serial name 'io.homeassistant.companion.android.common.data.integration.ActionData', but it was missing
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.PluginExceptionsKt.throwMissingFieldException(PluginExceptions.kt:20)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at io.homeassistant.companion.android.common.data.integration.ActionData.<init>(ActionData.kt:6)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at io.homeassistant.companion.android.common.data.integration.ActionData$$serializer.deserialize(ActionData.kt:6)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at io.homeassistant.companion.android.common.data.integration.ActionData$$serializer.deserialize(ActionData.kt:6)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:351)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableValue(Tagged.kt:207)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableElement$lambda$1(Tagged.kt:279)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.$r8$lambda$DBYIndnlKB76_oyt-Ap4f_T35nM(Unknown Source:0)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.tagBlock(Tagged.kt:294)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableElement(Tagged.kt:279)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.encoding.CompositeDecoder$-CC.decodeSerializableElement$default(Decoding.kt:539)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:351)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableValue(Tagged.kt:207)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableElement$lambda$1(Tagged.kt:279)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.$r8$lambda$DBYIndnlKB76_oyt-Ap4f_T35nM(Unknown Source:0)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.tagBlock(Tagged.kt:294)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.TaggedDecoder.decodeSerializableElement(Tagged.kt:279)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.encoding.CompositeDecoder$-CC.decodeSerializableElement$default(Decoding.kt:539)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:111)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.MapLikeSerializer.readElement(CollectionSerializers.kt:84)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.AbstractCollectionSerializer.readElement$default(CollectionSerializers.kt:51)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.AbstractCollectionSerializer.merge(CollectionSerializers.kt:36)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.AbstractCollectionSerializer.deserialize(CollectionSerializers.kt:43)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:351)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.internal.NullableSerializer.deserialize(NullableSerializer.kt:30)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.json.internal.AbstractJsonTreeDecoder.decodeSerializableValue(TreeJsonDecoder.kt:351)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.json.internal.TreeJsonDecoderKt.readJson(TreeJsonDecoder.kt:25)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.serialization.json.Json.decodeFromJsonElement(Json.kt:170)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at io.homeassistant.companion.android.common.data.websocket.impl.WebSocketRepositoryImpl.getServices(WebSocketRepositoryImpl.kt:488)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at io.homeassistant.companion.android.common.data.websocket.impl.WebSocketRepositoryImpl$getServices$1.invokeSuspend(Unknown Source:14)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:35)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:101)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at android.os.Handler.handleCallback(Handler.java:995)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at android.os.Handler.dispatchMessage(Handler.java:103)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at android.os.Looper.loopOnce(Looper.java:273)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at android.os.Looper.loop(Looper.java:363)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at android.app.ActivityThread.main(ActivityThread.java:10060)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at java.lang.reflect.Method.invoke(Native Method)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
11-09 13:20:16.594 11296 11296 E ButtonWidgetConfigureActivity$onCreate: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
11-09 13:20:16.609 11296 11296 D ButtonWidgetConfigureActivity: Actions found: {1={}}