Numeric IDs in a Secret's stringData must be quoted
An unquoted Discord or Telegram user ID in stringData becomes a YAML number. The apply fails, and a long ID has already lost precision by the time you read the error.
I put the allowed user IDs for two chat bots into a SOPS-encrypted Secret as
stringData, written the way they look:
stringData:
TELEGRAM_ALLOWED_USERS: 123456789Flux refused to apply it with expected string, got valueUnstructured.
stringData has to hold strings, and YAML reads an unquoted run of digits as a
number.
There was a second problem hiding in that. The Discord ID has 18 digits, more
than a float can hold exactly, and in the error output it was already rounded to
a number ending in 00. So big IDs lose precision as floats, and the number in the
error message wasn’t the one I had written.
Quote them:
stringData:
TELEGRAM_ALLOWED_USERS: "123456789"The same goes for any numeric value that is really an identifier, such as user and channel IDs.