🐛
Hasuraで「Inconsistent object: Invalid hostname」が出たときの解決方法
発生した問題
Hasura GraphQL EngineのDATA > Edit Data Source > Environment Variableから環境変数を指定してDBに接続しようとしたら、次のようなエラーが発生しました。
Inconsistent object: Invalid hostname:
[
{
“definition”: “Database Display Name”,
“name”: “source Database Display Name”,
“reason”: “Inconsistent object: Invalid hostname: postgresql://postgres:xxxxxx@xxx.xxx.xxx.xxx:xxxx/postgres”,
“type”: “source”
}
]
問題に対する考察
Invalid hostnameとあるので、ホスト名が間違っているのでしょうか。
しかし、Connection Parametersからパラメータを指定したら接続できたので、Database URLの書式・パラメータは正しそうに見えます。
原因
Database URLで指定していたパスワードに@
などのURLに使用できないASCII文字が含まれているためでした。
解決方法
@
などのURLに使用できないASCII文字をURLエンコードした文字列に変換することで正常に接続することができました。
URLエンコード対応表
同じような問題に関するIssueがHasuraのリポジトリにありました。
Discussion