zabbix agents can return ZBX_UNSUPPORTED or ZBX_ERROR.
ZBX_ERROR has been underused lately, but, according to same traces from old documents, it was used earlier to signal temporary failure that should not make the item unsupported :
The agent is also allowed to return ZBX_ERROR for recoverable errors. The Zabbix server should then poll the agent again whenever it wants to retrieve the item value.
this is currently only surviving in https://zabbix.org/wiki/Docs/protocols/zabbix_agent/1.4 , but it has come from the old wiki, which probably came from some other old document.
since then, the effect of ZBX_ERROR has changed and items are turning unsupported. it is suggested to make it match this old piece of documentation and only set the error message, but not make the item unsupported.
it would also make more sense, as now ZBX_UNSUPPORTED and ZBX_ERROR are largely identical.
this would be especially useful for script writers who sometimes would not have a value to return. they cannot return 0, as that would mess up the data. making the item go unsupported disables it for 10 minutes (by default). neither is a good choice.