fix(source-salesloft): use native OAuth authenticator so token refresh works - #84300
fix(source-salesloft): use native OAuth authenticator so token refresh works#84300devin-ai-integration[bot] wants to merge 2 commits into
4 fail, 3 skipped, 9 pass in 1m 4s
16 tests 9 ✅ 1m 4s ⏱️
2 suites 3 💤
2 files 4 ❌
Results for commit a3ff3d8.
Annotations
Check warning on line 0 in .tmp.integration_tests.test_airbyte_standards.TestSuite
github-actions / `source-salesloft` Connector Test Results
test_docker_image_build_and_spec (.tmp.integration_tests.test_airbyte_standards.TestSuite) failed
airbyte-integrations/connectors/source-salesloft/build/test-results/standard-tests-junit.xml [took 13s]
Raw output
SystemExit: 1
self = <airbyte_cdk.test.standard_tests.util.TestSuiteAuto object at 0x7f5ee19a6150>
connector_image_override = None, connector_base_image_override = None
@pytest.mark.skipif(
shutil.which("docker") is None,
reason="docker CLI not found in PATH, skipping docker image tests",
)
@pytest.mark.image_tests
def test_docker_image_build_and_spec(
self,
connector_image_override: str | None,
connector_base_image_override: str | None,
) -> None:
"""Run `docker_image` acceptance tests."""
connector_root = self.get_connector_root_dir().absolute()
metadata = MetadataFile.from_file(connector_root / "metadata.yaml")
connector_image: str | None = connector_image_override
if not connector_image:
tag = "dev-latest"
> connector_image = build_connector_image(
connector_name=connector_root.absolute().name,
connector_directory=connector_root,
metadata=metadata,
tag=tag,
no_verify=False,
base_image_override=connector_base_image_override,
)
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/test/standard_tests/docker_base.py:237:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
connector_name = 'source-salesloft'
connector_directory = PosixPath('/home/runner/work/airbyte/airbyte/airbyte-integrations/connectors/source-salesloft')
def build_connector_image(
connector_name: str,
connector_directory: Path,
*,
metadata: MetadataFile,
tag: str,
no_verify: bool = False,
dockerfile_override: Path | None = None,
base_image_override: str | None = None,
) -> str:
"""Build a connector Docker image.
This command builds a Docker image for a connector, using either
the connector's Dockerfile or a base image specified in the metadata.
The image is built for both AMD64 and ARM64 architectures.
Args:
connector_name: The name of the connector.
connector_directory: The directory containing the connector code.
metadata: The metadata of the connector.
tag: The tag to apply to the built image.
no_verify: If True, skip verification of the built image.
dockerfile_override: Optional path to a Dockerfile to use instead of the connector's default.
base_image_override: Optional base image to build `FROM` instead of the `baseImage`
declared in `metadata.yaml`. This lets CI build a connector on top of a
locally-built `source-declarative-manifest` image (e.g. one built from the current
branch) so the image tests exercise the branch's CDK rather than the published base
image's CDK. The image must be visible to the default buildx builder: locally-built
images are only resolved by the default `docker` driver, not by `docker-container`
builders (which would instead attempt to pull the image from the registry).
Raises:
ValueError: If the connector build options are not defined in metadata.yaml.
ConnectorImageBuildError: If the image build or tag operation fails.
"""
# Detect primary architecture based on the machine type.
primary_arch: ArchEnum = (
ArchEnum.ARM64
if platform.machine().lower().startswith(("arm", "aarch"))
else ArchEnum.AMD64
)
if not connector_name:
raise ValueError("Connector name must be provided.")
if not connector_directory:
raise ValueError("Connector directory must be provided.")
if not connector_directory.exists():
raise ValueError(f"Connector directory does not exist: {connector_directory}")
connector_kebab_name = connector_name
connector_dockerfile_dir = connector_directory / "build" / "docker"
if dockerfile_override:
dockerfile_path = dockerfile_override
else:
dockerfile_path = connector_dockerfile_dir / "Dockerfile"
dockerignore_path = connector_dockerfile_dir / "Dockerfile.dockerignore"
try:
dockerfile_text, dockerignore_text = get_dockerfile_templates(
metadata=metadata,
connector_directory=connector_directory,
)
except FileNotFoundError:
# If the Dockerfile and .dockerignore are not found in the connector directory,
# download the templates from the Airbyte repo. This is a fallback
# in case the Airbyte repo not checked out locally.
try:
dockerfile_text, dockerignore_text = _download_dockerfile_defs(
connector_language=metadata.data.language,
)
except requests.HTTPError as e:
raise ConnectorImageBuildError(
build_args=[],
error_text=(
"Could not locate local dockerfile templates and "
f"failed to download Dockerfile templates from github: {e}"
),
) from e
# ensure the directory exists
connector_dockerfile_dir.mkdir(parents=True, exist_ok=True)
dockerfile_path.write_text(dockerfile_text)
dockerignore_path.write_text(dockerignore_text)
extra_build_script: str = ""
build_customization_path = connector_directory / "build_customization.py"
if build_customization_path.exists():
extra_build_script = str(build_customization_path)
dockerfile_path.parent.mkdir(parents=True, exist_ok=True)
if not metadata.data.connectorBuildOptions:
raise ValueError(
"Connector build options are not defined in metadata.yaml. "
"Please check the connector's metadata file."
)
base_image = base_image_override or metadata.data.connectorBuildOptions.baseImage
build_args: dict[str, str | None] = {
"BASE_IMAGE": base_image,
"CONNECTOR_NAME": connector_kebab_name,
"EXTRA_BUILD_SCRIPT": extra_build_script,
}
base_tag = f"{metadata.data.dockerRepository}:{tag}"
if metadata.data.language == ConnectorLanguage.JAVA:
# This assumes that the repo root ('airbyte') is three levels above the
# connector directory (airbyte/airbyte-integrations/connectors/source-foo).
repo_root = connector_directory.parent.parent.parent
# For Java connectors, we need to build the connector tar file first.
subprocess.run(
[
"./gradlew",
f":airbyte-integrations:connectors:{connector_name}:distTar",
],
cwd=repo_root,
text=True,
check=True,
)
# Always build for AMD64, and optionally for ARM64 if needed locally.
architectures = [ArchEnum.AMD64]
if primary_arch == ArchEnum.ARM64:
architectures += [ArchEnum.ARM64]
built_images: list[str] = []
for arch in architectures:
docker_tag = f"{base_tag}-{arch.value}"
docker_tag_parts = docker_tag.split("/")
if len(docker_tag_parts) > 2:
docker_tag = "/".join(docker_tag_parts[-1:])
built_images.append(
_build_image(
context_dir=connector_directory,
dockerfile=dockerfile_path,
metadata=metadata,
tag=docker_tag,
arch=arch,
build_args=build_args,
)
)
_tag_image(
tag=f"{base_tag}-{primary_arch.value}",
new_tags=[base_tag],
)
if not no_verify:
success, error_message = verify_connector_image(base_tag)
if success:
click.echo(f"Build and verification completed successfully: {base_tag}")
return base_tag
click.echo(
f"Built image failed verification: {base_tag}\nError was:{error_message}", err=True
)
> sys.exit(1)
E SystemExit: 1
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/utils/docker.py:299: SystemExit
Check warning on line 0 in .tmp.integration_tests.test_airbyte_standards.TestSuite
github-actions / `source-salesloft` Connector Test Results
test_docker_image_build_and_check['invalid_config' Test Scenario] (.tmp.integration_tests.test_airbyte_standards.TestSuite) failed
airbyte-integrations/connectors/source-salesloft/build/test-results/standard-tests-junit.xml [took 0s]
Raw output
SystemExit: 1
self = <airbyte_cdk.test.standard_tests.util.TestSuiteAuto object at 0x7f5ee19a45d0>
scenario = ConnectorTestScenario(config_path=PosixPath('integration_tests/invalid_config.json'), config_dict=None, configured_catalog_path=None, empty_streams=None, timeout_seconds=None, expect_records=None, file_types=None, status='failed')
connector_image_override = None, connector_base_image_override = None
@pytest.mark.skipif(
shutil.which("docker") is None,
reason="docker CLI not found in PATH, skipping docker image tests",
)
@pytest.mark.image_tests
def test_docker_image_build_and_check(
self,
scenario: ConnectorTestScenario,
connector_image_override: str | None,
connector_base_image_override: str | None,
) -> None:
"""Run `docker_image` acceptance tests.
This test builds the connector image and runs the `check` command inside the container.
Note:
- It is expected for docker image caches to be reused between test runs.
- In the rare case that image caches need to be cleared, please clear
the local docker image cache using `docker image prune -a` command.
"""
tag = "dev-latest"
connector_root = self.get_connector_root_dir()
metadata = MetadataFile.from_file(connector_root / "metadata.yaml")
connector_image: str | None = connector_image_override
if not connector_image:
tag = "dev-latest"
> connector_image = build_connector_image(
connector_name=connector_root.absolute().name,
connector_directory=connector_root,
metadata=metadata,
tag=tag,
no_verify=False,
base_image_override=connector_base_image_override,
)
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/test/standard_tests/docker_base.py:283:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
connector_name = 'source-salesloft', connector_directory = PosixPath('.')
def build_connector_image(
connector_name: str,
connector_directory: Path,
*,
metadata: MetadataFile,
tag: str,
no_verify: bool = False,
dockerfile_override: Path | None = None,
base_image_override: str | None = None,
) -> str:
"""Build a connector Docker image.
This command builds a Docker image for a connector, using either
the connector's Dockerfile or a base image specified in the metadata.
The image is built for both AMD64 and ARM64 architectures.
Args:
connector_name: The name of the connector.
connector_directory: The directory containing the connector code.
metadata: The metadata of the connector.
tag: The tag to apply to the built image.
no_verify: If True, skip verification of the built image.
dockerfile_override: Optional path to a Dockerfile to use instead of the connector's default.
base_image_override: Optional base image to build `FROM` instead of the `baseImage`
declared in `metadata.yaml`. This lets CI build a connector on top of a
locally-built `source-declarative-manifest` image (e.g. one built from the current
branch) so the image tests exercise the branch's CDK rather than the published base
image's CDK. The image must be visible to the default buildx builder: locally-built
images are only resolved by the default `docker` driver, not by `docker-container`
builders (which would instead attempt to pull the image from the registry).
Raises:
ValueError: If the connector build options are not defined in metadata.yaml.
ConnectorImageBuildError: If the image build or tag operation fails.
"""
# Detect primary architecture based on the machine type.
primary_arch: ArchEnum = (
ArchEnum.ARM64
if platform.machine().lower().startswith(("arm", "aarch"))
else ArchEnum.AMD64
)
if not connector_name:
raise ValueError("Connector name must be provided.")
if not connector_directory:
raise ValueError("Connector directory must be provided.")
if not connector_directory.exists():
raise ValueError(f"Connector directory does not exist: {connector_directory}")
connector_kebab_name = connector_name
connector_dockerfile_dir = connector_directory / "build" / "docker"
if dockerfile_override:
dockerfile_path = dockerfile_override
else:
dockerfile_path = connector_dockerfile_dir / "Dockerfile"
dockerignore_path = connector_dockerfile_dir / "Dockerfile.dockerignore"
try:
dockerfile_text, dockerignore_text = get_dockerfile_templates(
metadata=metadata,
connector_directory=connector_directory,
)
except FileNotFoundError:
# If the Dockerfile and .dockerignore are not found in the connector directory,
# download the templates from the Airbyte repo. This is a fallback
# in case the Airbyte repo not checked out locally.
try:
dockerfile_text, dockerignore_text = _download_dockerfile_defs(
connector_language=metadata.data.language,
)
except requests.HTTPError as e:
raise ConnectorImageBuildError(
build_args=[],
error_text=(
"Could not locate local dockerfile templates and "
f"failed to download Dockerfile templates from github: {e}"
),
) from e
# ensure the directory exists
connector_dockerfile_dir.mkdir(parents=True, exist_ok=True)
dockerfile_path.write_text(dockerfile_text)
dockerignore_path.write_text(dockerignore_text)
extra_build_script: str = ""
build_customization_path = connector_directory / "build_customization.py"
if build_customization_path.exists():
extra_build_script = str(build_customization_path)
dockerfile_path.parent.mkdir(parents=True, exist_ok=True)
if not metadata.data.connectorBuildOptions:
raise ValueError(
"Connector build options are not defined in metadata.yaml. "
"Please check the connector's metadata file."
)
base_image = base_image_override or metadata.data.connectorBuildOptions.baseImage
build_args: dict[str, str | None] = {
"BASE_IMAGE": base_image,
"CONNECTOR_NAME": connector_kebab_name,
"EXTRA_BUILD_SCRIPT": extra_build_script,
}
base_tag = f"{metadata.data.dockerRepository}:{tag}"
if metadata.data.language == ConnectorLanguage.JAVA:
# This assumes that the repo root ('airbyte') is three levels above the
# connector directory (airbyte/airbyte-integrations/connectors/source-foo).
repo_root = connector_directory.parent.parent.parent
# For Java connectors, we need to build the connector tar file first.
subprocess.run(
[
"./gradlew",
f":airbyte-integrations:connectors:{connector_name}:distTar",
],
cwd=repo_root,
text=True,
check=True,
)
# Always build for AMD64, and optionally for ARM64 if needed locally.
architectures = [ArchEnum.AMD64]
if primary_arch == ArchEnum.ARM64:
architectures += [ArchEnum.ARM64]
built_images: list[str] = []
for arch in architectures:
docker_tag = f"{base_tag}-{arch.value}"
docker_tag_parts = docker_tag.split("/")
if len(docker_tag_parts) > 2:
docker_tag = "/".join(docker_tag_parts[-1:])
built_images.append(
_build_image(
context_dir=connector_directory,
dockerfile=dockerfile_path,
metadata=metadata,
tag=docker_tag,
arch=arch,
build_args=build_args,
)
)
_tag_image(
tag=f"{base_tag}-{primary_arch.value}",
new_tags=[base_tag],
)
if not no_verify:
success, error_message = verify_connector_image(base_tag)
if success:
click.echo(f"Build and verification completed successfully: {base_tag}")
return base_tag
click.echo(
f"Built image failed verification: {base_tag}\nError was:{error_message}", err=True
)
> sys.exit(1)
E SystemExit: 1
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/utils/docker.py:299: SystemExit
Check warning on line 0 in .tmp.integration_tests.test_airbyte_standards.TestSuite
github-actions / `source-salesloft` Connector Test Results
test_docker_image_build_and_check['config' Test Scenario] (.tmp.integration_tests.test_airbyte_standards.TestSuite) failed
airbyte-integrations/connectors/source-salesloft/build/test-results/standard-tests-junit.xml [took 0s]
Raw output
SystemExit: 1
self = <airbyte_cdk.test.standard_tests.util.TestSuiteAuto object at 0x7f5ee19a4c90>
scenario = ConnectorTestScenario(config_path=PosixPath('secrets/config.json'), config_dict=None, configured_catalog_path=None, empty_streams=[], timeout_seconds=None, expect_records=None, file_types=None, status='succeed')
connector_image_override = None, connector_base_image_override = None
@pytest.mark.skipif(
shutil.which("docker") is None,
reason="docker CLI not found in PATH, skipping docker image tests",
)
@pytest.mark.image_tests
def test_docker_image_build_and_check(
self,
scenario: ConnectorTestScenario,
connector_image_override: str | None,
connector_base_image_override: str | None,
) -> None:
"""Run `docker_image` acceptance tests.
This test builds the connector image and runs the `check` command inside the container.
Note:
- It is expected for docker image caches to be reused between test runs.
- In the rare case that image caches need to be cleared, please clear
the local docker image cache using `docker image prune -a` command.
"""
tag = "dev-latest"
connector_root = self.get_connector_root_dir()
metadata = MetadataFile.from_file(connector_root / "metadata.yaml")
connector_image: str | None = connector_image_override
if not connector_image:
tag = "dev-latest"
> connector_image = build_connector_image(
connector_name=connector_root.absolute().name,
connector_directory=connector_root,
metadata=metadata,
tag=tag,
no_verify=False,
base_image_override=connector_base_image_override,
)
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/test/standard_tests/docker_base.py:283:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
connector_name = 'source-salesloft', connector_directory = PosixPath('.')
def build_connector_image(
connector_name: str,
connector_directory: Path,
*,
metadata: MetadataFile,
tag: str,
no_verify: bool = False,
dockerfile_override: Path | None = None,
base_image_override: str | None = None,
) -> str:
"""Build a connector Docker image.
This command builds a Docker image for a connector, using either
the connector's Dockerfile or a base image specified in the metadata.
The image is built for both AMD64 and ARM64 architectures.
Args:
connector_name: The name of the connector.
connector_directory: The directory containing the connector code.
metadata: The metadata of the connector.
tag: The tag to apply to the built image.
no_verify: If True, skip verification of the built image.
dockerfile_override: Optional path to a Dockerfile to use instead of the connector's default.
base_image_override: Optional base image to build `FROM` instead of the `baseImage`
declared in `metadata.yaml`. This lets CI build a connector on top of a
locally-built `source-declarative-manifest` image (e.g. one built from the current
branch) so the image tests exercise the branch's CDK rather than the published base
image's CDK. The image must be visible to the default buildx builder: locally-built
images are only resolved by the default `docker` driver, not by `docker-container`
builders (which would instead attempt to pull the image from the registry).
Raises:
ValueError: If the connector build options are not defined in metadata.yaml.
ConnectorImageBuildError: If the image build or tag operation fails.
"""
# Detect primary architecture based on the machine type.
primary_arch: ArchEnum = (
ArchEnum.ARM64
if platform.machine().lower().startswith(("arm", "aarch"))
else ArchEnum.AMD64
)
if not connector_name:
raise ValueError("Connector name must be provided.")
if not connector_directory:
raise ValueError("Connector directory must be provided.")
if not connector_directory.exists():
raise ValueError(f"Connector directory does not exist: {connector_directory}")
connector_kebab_name = connector_name
connector_dockerfile_dir = connector_directory / "build" / "docker"
if dockerfile_override:
dockerfile_path = dockerfile_override
else:
dockerfile_path = connector_dockerfile_dir / "Dockerfile"
dockerignore_path = connector_dockerfile_dir / "Dockerfile.dockerignore"
try:
dockerfile_text, dockerignore_text = get_dockerfile_templates(
metadata=metadata,
connector_directory=connector_directory,
)
except FileNotFoundError:
# If the Dockerfile and .dockerignore are not found in the connector directory,
# download the templates from the Airbyte repo. This is a fallback
# in case the Airbyte repo not checked out locally.
try:
dockerfile_text, dockerignore_text = _download_dockerfile_defs(
connector_language=metadata.data.language,
)
except requests.HTTPError as e:
raise ConnectorImageBuildError(
build_args=[],
error_text=(
"Could not locate local dockerfile templates and "
f"failed to download Dockerfile templates from github: {e}"
),
) from e
# ensure the directory exists
connector_dockerfile_dir.mkdir(parents=True, exist_ok=True)
dockerfile_path.write_text(dockerfile_text)
dockerignore_path.write_text(dockerignore_text)
extra_build_script: str = ""
build_customization_path = connector_directory / "build_customization.py"
if build_customization_path.exists():
extra_build_script = str(build_customization_path)
dockerfile_path.parent.mkdir(parents=True, exist_ok=True)
if not metadata.data.connectorBuildOptions:
raise ValueError(
"Connector build options are not defined in metadata.yaml. "
"Please check the connector's metadata file."
)
base_image = base_image_override or metadata.data.connectorBuildOptions.baseImage
build_args: dict[str, str | None] = {
"BASE_IMAGE": base_image,
"CONNECTOR_NAME": connector_kebab_name,
"EXTRA_BUILD_SCRIPT": extra_build_script,
}
base_tag = f"{metadata.data.dockerRepository}:{tag}"
if metadata.data.language == ConnectorLanguage.JAVA:
# This assumes that the repo root ('airbyte') is three levels above the
# connector directory (airbyte/airbyte-integrations/connectors/source-foo).
repo_root = connector_directory.parent.parent.parent
# For Java connectors, we need to build the connector tar file first.
subprocess.run(
[
"./gradlew",
f":airbyte-integrations:connectors:{connector_name}:distTar",
],
cwd=repo_root,
text=True,
check=True,
)
# Always build for AMD64, and optionally for ARM64 if needed locally.
architectures = [ArchEnum.AMD64]
if primary_arch == ArchEnum.ARM64:
architectures += [ArchEnum.ARM64]
built_images: list[str] = []
for arch in architectures:
docker_tag = f"{base_tag}-{arch.value}"
docker_tag_parts = docker_tag.split("/")
if len(docker_tag_parts) > 2:
docker_tag = "/".join(docker_tag_parts[-1:])
built_images.append(
_build_image(
context_dir=connector_directory,
dockerfile=dockerfile_path,
metadata=metadata,
tag=docker_tag,
arch=arch,
build_args=build_args,
)
)
_tag_image(
tag=f"{base_tag}-{primary_arch.value}",
new_tags=[base_tag],
)
if not no_verify:
success, error_message = verify_connector_image(base_tag)
if success:
click.echo(f"Build and verification completed successfully: {base_tag}")
return base_tag
click.echo(
f"Built image failed verification: {base_tag}\nError was:{error_message}", err=True
)
> sys.exit(1)
E SystemExit: 1
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/utils/docker.py:299: SystemExit
Check warning on line 0 in .tmp.integration_tests.test_airbyte_standards.TestSuite
github-actions / `source-salesloft` Connector Test Results
test_basic_read['config' Test Scenario] (.tmp.integration_tests.test_airbyte_standards.TestSuite) failed
airbyte-integrations/connectors/source-salesloft/build/test-results/standard-tests-junit.xml [took 39s]
Raw output
airbyte_cdk.test.entrypoint_wrapper.AirbyteEntrypointException: Failed to run airbyte command.
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/users?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'2b617e1968ab4acb8760a209cf6afcb7\', \'X-Runtime\': \'0.010520\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'599\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.168\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, response = self._http_client.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 611, in send_request
response: requests.Response = self._send_with_retry(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 292, in _send_with_retry
response = backoff_handler(rate_limit_backoff_handler(user_backoff_handler))(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 386, in _send
self._handle_error_resolution(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 501, in _handle_error_resolution
raise AirbyteTracedException(
airbyte_cdk.utils.traced_exception.AirbyteTracedException: HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.
', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=StreamDescriptor(name='users', namespace=None))
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/account_tiers?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'d9a585ffe0952402bb5fafd104443574\', \'X-Runtime\': \'0.065289\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'598\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.248\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, response = self._http_client.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 611, in send_request
response: requests.Response = self._send_with_retry(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 292, in _send_with_retry
response = backoff_handler(rate_limit_backoff_handler(user_backoff_handler))(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 386, in _send
self._handle_error_resolution(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 501, in _handle_error_resolution
raise AirbyteTracedException(
airbyte_cdk.utils.traced_exception.AirbyteTracedException: HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.
', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=StreamDescriptor(name='account_tiers', namespace=None))
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/imports?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'8c3a75543b1573c661bedcb52f03ce52\', \'X-Runtime\': \'0.009273\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'597\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.354\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, response = self._http_client.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 611, in send_request
response: requests.Response = self._send_with_retry(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 292, in _send_with_retry
response = backoff_handler(rate_limit_backoff_handler(user_backoff_handler))(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 386, in _send
self._handle_error_resolution(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 501, in _handle_error_resolution
raise AirbyteTracedException(
airbyte_cdk.utils.traced_exception.AirbyteTracedException: HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.
', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=StreamDescriptor(name='import', namespace=None))
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/person_stages?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'4d0391df1b1c2950d006bb8c0de9cc69\', \'X-Runtime\': \'0.012727\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'596\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.420\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, response = self._http_client.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 611, in send_request
response: requests.Response = self._send_with_retry(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 292, in _send_with_retry
response = backoff_handler(rate_limit_backoff_handler(user_backoff_handler))(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 386, in _send
self._handle_error_resolution(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 501, in _handle_error_resolution
raise AirbyteTracedException(
airbyte_cdk.utils.traced_exception.AirbyteTracedException: HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.
', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=StreamDescriptor(name='person_stages', namespace=None))
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/phone_number_assignments?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'940b98465ab05f386770836234b806a1\', \'X-Runtime\': \'0.005549\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'595\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.481\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, response = self._http_client.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 611, in send_request
response: requests.Response = self._send_with_retry(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 292, in _send_with_retry
response = backoff_handler(rate_limit_backoff_handler(user_backoff_handler))(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 386, in _send
self._handle_error_resolution(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 501, in _handle_error_resolution
raise AirbyteTracedException(
airbyte_cdk.utils.traced_exception.AirbyteTracedException: HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.
', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=StreamDescriptor(name='phone_number_assignments', namespace=None))
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/steps?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'b4b0bf0fe330e115ccd65cfb12c6d10a\', \'X-Runtime\': \'0.007619\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'593\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.610\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, response = self._http_client.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 611, in send_request
response: requests.Response = self._send_with_retry(
^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 292, in _send_with_retry
response = backoff_handler(rate_limit_backoff_handler(user_backoff_handler))(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/backoff/_sync.py", line 105, in retry
ret = target(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 386, in _send
self._handle_error_resolution(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/http/http_client.py", line 501, in _handle_error_resolution
raise AirbyteTracedException(
airbyte_cdk.utils.traced_exception.AirbyteTracedException: HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.
', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=StreamDescriptor(name='steps', namespace=None))
AirbyteErrorTraceMessage(message='HTTP Status Code: 401. Error: Unauthorized. Please ensure you are authenticated correctly.', internal_message='\'GET\' request to \'https://api.salesloft.com/v2/team_template_attachments?per_page=100\' failed with status code \'401\' and error message: \'Invalid Bearer token\'. Request (body): \'None\'. Response (body): \'{\'error\': \'Invalid Bearer token\'}\'. Response (headers): \'{\'Date\': \'Wed, 12 Aug 2026 14:48:06 GMT\', \'Content-Type\': \'application/json; charset=utf-8\', \'Transfer-Encoding\': \'chunked\', \'Connection\': \'keep-alive\', \'X-Frame-Options\': \'SAMEORIGIN\', \'X-XSS-Protection\': \'1; mode=block\', \'X-Content-Type-Options\': \'nosniff\', \'X-Download-Options\': \'noopen\', \'X-Permitted-Cross-Domain-Policies\': \'none\', \'Referrer-Policy\': \'strict-origin-when-cross-origin\', \'Cache-Control\': \'no-cache\', \'Content-Security-Policy-Report-Only\': "default-src \'self\' https: blob: data:; img-src \'self\' https: http:; frame-ancestors \'none\'", \'X-Request-Id\': \'6891ce4482400f28dc8cafffef2410a4\', \'X-Runtime\': \'0.008193\', \'Strict-Transport-Security\': \'max-age=31536000; includeSubDomains\', \'vary\': \'Origin\', \'x-ratelimit-remaining-minute\': \'594\', \'x-ratelimit-limit-minute\': \'600\', \'x-ratelimit-endpoint-cost\': \'1\', \'X-Entry-Cluster\': \'k8s-us-pop-2\', \'X-Entry-PoP\': \'us-east4\', \'X-Global-Request-Start\': \'t=1786546086.617\'}\'.', stack_trace='Traceback (most recent call last):
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/streams/concurrent/partition_reader.py", line 79, in process_partition
for record in partition.read():
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py", line 91, in read
for stream_data in self._retriever.read_records(
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 480, in read_records
yield from records
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 404, in _read_pages
response = self._fetch_next_page(stream_slice, next_page_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py", line 321, in _fetch_next_page
return self.requester.send_request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/sources/declarative/requesters/http_requester.py", line 458, in send_request
request, respon…TracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/crm_users?per_page=100\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:06 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'506e71b93f73b402776a9be7cf67b43c\\\', \\\'X-Runtime\\\': \\\'0.012466\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'592\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546086.748\\\'}\\\'.\')
E custom_fields: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/custom_fields?per_page=100\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:06 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'a5c4286bbae1b27407455284fc776241\\\', \\\'X-Runtime\\\': \\\'0.007096\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'590\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546086.918\\\'}\\\'.\')
E groups: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/groups?per_page=100\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:06 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'4ba90d785ad10e44928abaa71f081ffe\\\', \\\'X-Runtime\\\': \\\'0.005959\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'589\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546086.919\\\'}\\\'.\')
E call_sentiments: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/call_sentiments?per_page=100\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'d247f193e7e1f137ca49548db5134e73\\\', \\\'X-Runtime\\\': \\\'0.007795\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'587\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.056\\\'}\\\'.\')
E call_dispositions: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/call_dispositions?per_page=100\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'ad9ea1bb3043d1747b43bd83843c9a58\\\', \\\'X-Runtime\\\': \\\'0.019558\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'588\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.068\\\'}\\\'.\')
E people: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/people?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'01caa4a05d9050d352f5c440ee86cc9e\\\', \\\'X-Runtime\\\': \\\'0.008084\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'586\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.185\\\'}\\\'.\')
E cadences: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/cadences?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'74fe89b4bcc9310835816729c9412855\\\', \\\'X-Runtime\\\': \\\'0.009294\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'584\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.307\\\'}\\\'.\')
E cadence_memberships: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/cadence_memberships?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'ade2a8a06800c37144b5ea4d571f7951\\\', \\\'X-Runtime\\\': \\\'0.009991\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'583\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.433\\\'}\\\'.\')
E emails: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/activities/emails?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'150adc6b02f86a39f648b70ce0ab6436\\\', \\\'X-Runtime\\\': \\\'0.006922\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'582\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.597\\\'}\\\'.\')
E emails_scoped_fields: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/activities/emails?sort_direction=ASC&scoped_fields%5B%5D=subject&scoped_fields%5B%5D=body&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'ac55383b543d6696a4116ca985c2687b\\\', \\\'X-Runtime\\\': \\\'0.006697\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'581\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.768\\\'}\\\'.\')
E calls: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/activities/calls?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:07 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'90a3d0776f318d9d43da6fc9a70cba28\\\', \\\'X-Runtime\\\': \\\'0.009422\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'580\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546087.887\\\'}\\\'.\')
E accounts: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/accounts?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A07.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'6ab86dce924daf731d4e3016003fda1f\\\', \\\'X-Runtime\\\': \\\'0.007808\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'579\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.016\\\'}\\\'.\')
E account_stages: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/account_stages?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'98c2113ced5ea6cbc5f8a5e6e9c0c441\\\', \\\'X-Runtime\\\': \\\'0.007610\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'578\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.126\\\'}\\\'.\')
E actions: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/actions?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'7fbdde932a50597c25d8e893f9766ee3\\\', \\\'X-Runtime\\\': \\\'0.005927\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'577\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.253\\\'}\\\'.\')
E email_templates: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/email_templates?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'ce08e51a59f9070be3dbf20ee6895a59\\\', \\\'X-Runtime\\\': \\\'0.009704\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'575\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.443\\\'}\\\'.\')
E notes: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/notes?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'0e0904c742e864b07bb14bdaa1dfbdc9\\\', \\\'X-Runtime\\\': \\\'0.009405\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'574\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.552\\\'}\\\'.\')
E team_templates: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/team_templates?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'fd7eb2416523174e85ce83a5a939f861\\\', \\\'X-Runtime\\\': \\\'0.009099\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'573\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.692\\\'}\\\'.\')
E crm_activities: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/crm_activities?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'d47595189d66b660acf4183b04b28159\\\', \\\'X-Runtime\\\': \\\'0.007287\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'572\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.810\\\'}\\\'.\')
E successes: AirbyteTracedException(\'\\\'GET\\\' request to \\\'https://api.salesloft.com/v2/successes?sort_direction=ASC&per_page=100&updated_at%5Bgte%5D=2020-11-16T00%3A00%3A00.000000Z&updated_at%5Blte%5D=2026-08-12T14%3A48%3A08.000000Z\\\' failed with status code \\\'401\\\' and error message: \\\'Invalid Bearer token\\\'. Request (body): \\\'None\\\'. Response (body): \\\'{\\\'error\\\': \\\'Invalid Bearer token\\\'}\\\'. Response (headers): \\\'{\\\'Date\\\': \\\'Wed, 12 Aug 2026 14:48:08 GMT\\\', \\\'Content-Type\\\': \\\'application/json; charset=utf-8\\\', \\\'Transfer-Encoding\\\': \\\'chunked\\\', \\\'Connection\\\': \\\'keep-alive\\\', \\\'X-Frame-Options\\\': \\\'SAMEORIGIN\\\', \\\'X-XSS-Protection\\\': \\\'1; mode=block\\\', \\\'X-Content-Type-Options\\\': \\\'nosniff\\\', \\\'X-Download-Options\\\': \\\'noopen\\\', \\\'X-Permitted-Cross-Domain-Policies\\\': \\\'none\\\', \\\'Referrer-Policy\\\': \\\'strict-origin-when-cross-origin\\\', \\\'Cache-Control\\\': \\\'no-cache\\\', \\\'Content-Security-Policy-Report-Only\\\': "default-src \\\'self\\\' https: blob: data:; img-src \\\'self\\\' https: http:; frame-ancestors \\\'none\\\'", \\\'X-Request-Id\\\': \\\'c235201aeaa0222dea8c193f3410cb33\\\', \\\'X-Runtime\\\': \\\'0.005880\\\', \\\'Strict-Transport-Security\\\': \\\'max-age=31536000; includeSubDomains\\\', \\\'vary\\\': \\\'Origin\\\', \\\'x-ratelimit-remaining-minute\\\': \\\'571\\\', \\\'x-ratelimit-limit-minute\\\': \\\'600\\\', \\\'x-ratelimit-endpoint-cost\\\': \\\'1\\\', \\\'X-Entry-Cluster\\\': \\\'k8s-us-pop-2\\\', \\\'X-Entry-PoP\\\': \\\'us-east4\\\', \\\'X-Global-Request-Start\\\': \\\'t=1786546088.917\\\'}\\\'.\')
E meetings: AirbyteTracedException(\'Exhausted available request attempts. Exception: HTTP Status Code: 500. Error: Internal server error.\')
E searches: AirbyteTracedException(\'Exhausted available request attempts. Exception: HTTP Status Code: 500. Error: Internal server error.\')
E ', failure_type=<FailureType.config_error: 'config_error'>, stream_descriptor=None)
/home/runner/.local/share/uv/tools/airbyte-cdk/lib/python3.11/site-packages/airbyte_cdk/test/standard_tests/_job_runner.py:108: AirbyteEntrypointException