Just a thought: you are passing type: “list.single_line_text_field” in the API, but does this metafield already have a definition (in the store settings)? Could it be that this definition is not “list.single_line_text_field”?
I have also had problems with this mutation when trying to create or update a metafield with a definition.
The mutation itself seems to require a string value, but passing a string value to try and set, for example, an integer metafield, throws an error because the value can’t be coerced to an integer…