<#3237 Invoke error message hard to follow when `e...
# meltano-repo-activity
g
#3237 Invoke error message hard to follow when `env` key set to integer Issue created by MeltyBot Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/3314 Originally created by @pnadolny13 on 2022-03-04 173222 --- What is the current bug behavior? What is happening now? I set
PG_PORT
as an environment level
env
in my meltano.yml and forgot to quote the integer. I assume we'd say that they should always be quoted but the error logs were really hard to decrypt what the issue was. It just says
expected str, bytes or os.PathLike object, not int
. What is the expected correct behavior? What should be happening? It should either validate for this or catch the exception and try to give a better log message so I can fix it without having to read through the stack trace. Steps to reproduce How one can reproduce the issue? plugins: extractors: - name: tap-gitlab variant: meltanolabs pip_url: git+https://github.com/MeltanoLabs/tap-gitlab.git select: - commits.id - commits.project_id - commits.created_at - commits.author_name - commits.message - tags.* - '!*.*_url' loaders: - name: target-postgres variant: transferwise pip_url: pipelinewise-target-postgres orchestrators: - name: airflow pip_url: apache-airflow==2.1.2 --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.1.2/constraints-${MELTANO__PYTHON_VERSION}.txt transformers: - name: dbt pip_url: 'dbt-core~=1.0.0 dbt-postgres~=1.0.0 dbt-redshift~=1.0.0 dbt-snowflake~=1.0.0 dbt-bigquery~=1.0.0 ' files: - name: dbt pip_url: git+https://gitlab.com/meltano/files-dbt.git@config-version-2 - name: airflow pip_url: git+https://gitlab.com/meltano/files-airflow.git environments: - name: dev config: plugins: extractors: - name: tap-gitlab config: projects: meltano/meltano meltano/tap-gitlab start_date: '2021-03-01T000000Z' loaders: - name: target-postgres config: user: meltano dbname: warehouse default_target_schema: public transformers: - name: dbt config: target: postgres source_schema: public env: PG_ADDRESS: localhost PG_PORT: 5432 PG_USERNAME: meltano PG_DATABASE: warehouse Then I ran
meltano --log-level=debug --environment=dev invoke dbt:compile
Relevant logs and/or screenshots Please use code blocks (```) to format console output
Copy code
2022-03-04T17:13:08.705829Z [debug    ] expected str, bytes or os.PathLike object, not int 
Traceback (most recent call last):
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/cli/__init__.py", line 47, in main
    cli(obj={"project": None})
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/cli/params.py", line 23, in decorate
    return func(*args, **kwargs)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/cli/params.py", line 56, in decorate
    func(project, *args, **kwargs)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/cli/invoke.py", line 88, in invoke
    exit_code = run_async(
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/core/utils/__init__.py", line 50, in run_async
    loop.run_until_complete(future)
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/cli/invoke.py", line 131, in _invoke
    handle = await invoker.invoke_async(*plugin_args, command=command_name)
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/core/plugin_invoker.py", line 393, in invoke_async
    return await asyncio.create_subprocess_exec(
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/asyncio/subprocess.py", line 236, in create_subprocess_exec
    transport, protocol = await loop.subprocess_exec(
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/asyncio/base_events.py", line 1630, in subprocess_exec
    transport = await self._make_subprocess_transport(
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/asyncio/unix_events.py", line 197, in _make_subprocess_transport
    transp = _UnixSubprocessTransport(self, protocol, args, shell,
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/asyncio/base_subprocess.py", line 36, in __init__
    self._start(args=args, shell=shell, stdin=stdin, stdout=stdout,
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/asyncio/unix_events.py", line 789, in _start
    self._proc = subprocess.Popen(
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/subprocess.py", line 858, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/subprocess.py", line 1628, in _execute_child
    env_list.append(k + b'=' + os.fsencode(v))
  File "/Users/pnadolny/.pyenv/versions/3.8.12/lib/python3.8/os.py", line 806, in fsencode
    filename = fspath(filename)  # Does type-checking of `filename`.
TypeError: expected str, bytes or os.PathLike object, not int

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/pnadolny/.virtualenvs/meltano_project/lib/python3.8/site-packages/meltano/cli/__init__.py", line 55, in main
    raise CliError(str(err)) from err
meltano.cli.utils.CliError: expected str, bytes or os.PathLike object, not int
expected str, bytes or os.PathLike object, not int
Possible fixes If you can, link to the line of code that might be responsible for the problem or suggest a fix Further regression test Ensure we automatically catch similar issues in the future • Write additional adequate test cases and submit test results • Test results should be reviewed by a person from the team meltano/meltano