Variables in Bolt are not strongly typed, meaning they can change type during runtime.
This is also why many users think their inspector is bugged because their type reverts to (Null) when no value is assigned. This is not actually a bug, and will not cause any issue, but it is counter intuitive to new users.
To alleviate that, the user-defined type of the variable should be stored somewhere as a "type-hint". This way, the inspector would never revert to null, even if the value is null. Additionally, a warning could be shown if the variable gets assigned a value during runtime that does not respect the hinted type.
In-depth technical explanation
Why does the type get reset at the moment?
Some types are called reference types and support null as a value, for example strings, game objects, or any class. Other types are called value types and do not support null, for example numbers, booleans, or any struct.
Bolt variables store two things: the name of the variable and its value, because it's the only things Bolt needs to know to be able to get and set this variable during runtime.
When you create a variable of a value type, Bolt can deduce the type of the variable by looking at its value. For example, when it sees that the value is "true", it knows that the type is "boolean". When it sees that a value is "3.25", it knows that the type is "float". Because it can deduce the type, it can show you the right inspector for it in the variables window.
When you create a variable of a reference type and give it a null value (default for strings and Unity objects), Bolt cannot deduce the type. When Bolt sees a "null" value, it doesn't know whether that's a "null string" or a "null game object", because both of these are actually the exact same thing at the CIL level. This is why it cannot show you the right inspector and reverts its type dropdown to "(Null)" after you close the variables window.
This suggestion would save the preferred type alongside the value just to be able to display the right inspector. This would have no hard-limiting effect (you could still change the type of the variable at runtime), but it would be less confusing for new users.
Customer support service by UserEcho