cool-easter-32542
06/11/2025, 9:02 PMKeyError: 'IN' is raised by lark
Running the same code with just Terraform outside of Pants works fine.
## Terraform sample
data "snowflake_schemas" "in" {
in {
database = "<database name>"
}
}
output "in_output" {
value = data.snowflake_schemas.in.schemas
}
Pants version
2.26.0
OS
MacOS 14.7.5 (23H527)
Additional info
Full traceback
154927.06 [ERROR] 1 Exception encountered:
Engine traceback:
in experimental-deploy goal
ProcessExecutionFailure: Process 'Parse Terraform module sources: snowflake/jayoawd/nomihealth/schemas' failed with exit code 1.
stdout:
stderr:
Traceback (most recent call last):
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parsers/lalr_parser_state.py", line 77, in feed_token
action, arg = states[state][token.type]
~~~~~~~~~~~~~^^^^^^^^^^^^
KeyError: 'IN'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/private/var/folders/0x/k5krsh9j367dbd7dq7zr2xd80000gp/T/pants-sandbox-EgIzw5/.cache/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/pex", line 358, in <module>
boot(
File "/private/var/folders/0x/k5krsh9j367dbd7dq7zr2xd80000gp/T/pants-sandbox-EgIzw5/.cache/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/pex", line 341, in boot
runpy.run_module(module_name, run_name="__main__", alter_sys=True)
File "<frozen runpy>", line 226, in run_module
File "<frozen runpy>", line 98, in _run_module_code
File "<frozen runpy>", line 88, in _run_code
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/__pants_tf_parser.py", line 71, in <module>
main(sys.argv[1:])
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/__pants_tf_parser.py", line 64, in main
paths |= extract_module_source_paths(PurePath(filename).parent, content)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/__pants_tf_parser.py", line 36, in extract_module_source_paths
parsed_content = hcl2.loads(content)
^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/hcl2/api.py", line 27, in loads
tree = hcl2.parse(text + "\n")
^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/lark.py", line 655, in parse
return self.parser.parse(text, start=start, on_error=on_error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parser_frontends.py", line 104, in parse
return self.parser.parse(stream, chosen_start, **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parsers/lalr_parser.py", line 42, in parse
return self.parser.parse(lexer, start)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parsers/lalr_parser.py", line 88, in parse
return self.parse_from_state(parser_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parsers/lalr_parser.py", line 111, in parse_from_state
raise e
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parsers/lalr_parser.py", line 102, in parse_from_state
state.feed_token(token)
File "/Users/sebastian.galindo/.cache/pants/named_caches/pex_root/venvs/1/f42d6ed4f6b8194d0f3be235033f57131483b8eb/6a484136bc2bfef9fe28f2d034180604f8a7f369/lib/python3.11/site-packages/lark/parsers/lalr_parser_state.py", line 80, in feed_token
raise UnexpectedToken(token, expected, state=self, interactive_parser=None)
lark.exceptions.UnexpectedToken: Unexpected token Token('IN', 'in') at line 2, column 3.
Expected one of:
* __ANON_3
* RBRACE
Use --keep-sandboxes=on_failure to preserve the process chroot for inspection.
pantsbuild/pants