Answer
A referenced custom attribute stores the underlying record's OBJKEY internally, not the plain key value (like a country code) that the workflow is expecting to parse — passing that OBJKEY straight into a workflow parameter expecting a simple value fails. The fix is to add a separate, read-only custom field on the source entity that resolves and stores the actual underlying key value (not the OBJKEY), and have the workflow reference that read-only field instead of the reference field directly.