Are you publishing the payload using something like this?
action:
- service: mqtt.publish
data:
topic: utilities/water/reading
payload: '{"liters": 2, "retain": true}'
retain: true <-------------- This is important
That means the payload was not published as a retained message. The MQTT Broker was not instructed to store a copy of the payload. When Home Assistant restarts and subscribes to utilities/water/reading the Broker has no stored value to give to Home Assistant.