Skip to content

PR #1219

PR #1219 #3562

GitHub Actions / JUnit Test Report failed Dec 11, 2024 in 0s

888 tests run, 811 passed, 6 skipped, 71 failed.

Annotations

Check failure on line 186 in app/tests/e2e/test_tenants.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_tenants.test_create_tenant_issuer

fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7ffa0273bbc0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'group_id': 'TestGroup', 'image_url': 'https://image.ca', 'roles': ['issuer'], 'wallet_label': '5e79bf103a36424496dcb6b8559ca86e'}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

tenant_admin_client = <shared.util.rich_async_client.RichAsyncClient object at 0x7ffa0273bbc0>
tenant_admin_acapy_client = <aries_cloudcontroller.acapy_client.AcaPyClient object at 0x7ffa0279fbf0>
governance_acapy_client = <aries_cloudcontroller.acapy_client.AcaPyClient object at 0x7ffa02f7fa40>

    @pytest.mark.anyio
    @pytest.mark.skipif(
        TestMode.regression_run in TestMode.fixture_params,
        reason=skip_regression_test_reason,
    )
    async def test_create_tenant_issuer(
        tenant_admin_client: RichAsyncClient,
        tenant_admin_acapy_client: AcaPyClient,
        governance_acapy_client: AcaPyClient,
    ):
        wallet_label = uuid4().hex
>       response = await tenant_admin_client.post(
            TENANTS_BASE_PATH,
            json={
                "image_url": "https://image.ca",
                "wallet_label": wallet_label,
                "roles": ["issuer"],
                "group_id": group_id,
            },
        )

app/tests/e2e/test_tenants.py:186: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7ffa0273bbc0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/ld_proof/test_ld_proof_did_key_ed25519.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_ld_proof_did_key_ed25519.test_send_jsonld_key_ed25519[clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fc675819b20>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fc66d96fd40>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/ld_proof/test_ld_proof_did_key_ed25519.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_ld_proof_did_key_ed25519.test_send_jsonld_request[clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fc675819b20>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fc66d96fd40>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_clear_pending_revokes[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_clear_pending_revokes_no_map[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/ld_proof/test_ld_proof_did_key_ed25519.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_ld_proof_did_key_ed25519.test_issue_jsonld_ed[clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fc675819b20>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fc66d96fd40>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_publish_all_revocations_for_rev_reg_id[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_definitions.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_definitions.test_create_credential_definition_issuer_tenant[clean-clean-False]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7ff189d05f70>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_create_credential_definition_issuer_tenant[clean-clean-False]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_create_credential_definition_issuer_tenant[clean-clean-False]>>}
local_func = <function faber_issuer at 0x7ff19165bf60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7ff189d71670>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7ff189d05f70>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/ld_proof/test_ld_proof_did_key_ed25519.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_ld_proof_did_key_ed25519.test_send_jsonld_mismatch_ed_bbs[clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fc675819b20>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fc66d96fd40>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_publish_all_revocations_no_payload[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_definitions.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_definitions.test_create_credential_definition_issuer_tenant[clean-clean-True]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7ff189d05f70>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_create_credential_definition_issuer_tenant[clean-clean-False]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_create_credential_definition_issuer_tenant[clean-clean-False]>>}
local_func = <function faber_issuer at 0x7ff19165bf60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7ff189d71670>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7ff189d05f70>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/test_indy_credentials.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_indy_credentials.test_send_credential_oob[clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7f7b8096c360>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7b799df8c0>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_publish_one_revocation[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/ld_proof/test_ld_proof_did_key_ed25519.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_ld_proof_did_key_ed25519.test_send_jsonld_oob[clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_jsonld_key_ed25519[clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fc675819b20>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fc66d96fd40>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fc66d96de50>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_get_pending_revocations[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/test_indy_credentials.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_indy_credentials.test_send_credential[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7f7b8096c360>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7b799df8c0>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_clear_pending_revokes_bad_payload[clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/test_indy_credentials.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_indy_credentials.test_send_credential_request[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7f7b8096c360>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7b799df8c0>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/ld_proof/test_ld_proof_did_sov.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_ld_proof_did_sov.test_send_jsonld_credential_sov[clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fbb83d1d0d0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_jsonld_credential_sov[clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_jsonld_credential_sov[clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fbb8a8dbf60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fbb83d1e1e0>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fbb83d1d0d0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_publish_revocations_bad_payload[clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/verifier/test_verifier.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_verifier.test_accept_proof_request_verifier_has_issuer_role[clean-clean-clean-clean-clean-trust_registry]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7ea29f4530>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerAndVerifierGroup', 'image_url': None, 'roles': ['issuer', 'verifier'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'meld_co_issuer_verifier' for <Function test_accept_proof_request_verifier_has_issuer_role[clean-clean-clean-clean-clean-trust_registry]>>
args = ()
kwargs = {'request': <SubRequest 'meld_co_issuer_verifier' for <Function test_accept_proof_request_verifier_has_issuer_role[clean-clean-clean-clean-clean-trust_registry]>>}
local_func = <function meld_co_issuer_verifier at 0x7f7ea9d1d580>
backend_name = 'asyncio', backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7ea95e7b30>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:103: in meld_co_issuer_verifier
    issuer_and_verifier_tenant = await create_issuer_and_verifier_tenant(
app/tests/util/tenants.py:44: in create_issuer_and_verifier_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7ea29f4530>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/test_indy_credentials.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_indy_credentials.test_create_offer[clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7f7b8096c360>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7b799df8c0>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/verifier/test_verifier.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_verifier.test_accept_proof_request_verifier_has_issuer_role[clean-clean-clean-clean-clean-default]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7ea29f4530>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerAndVerifierGroup', 'image_url': None, 'roles': ['issuer', 'verifier'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'meld_co_issuer_verifier' for <Function test_accept_proof_request_verifier_has_issuer_role[clean-clean-clean-clean-clean-trust_registry]>>
args = ()
kwargs = {'request': <SubRequest 'meld_co_issuer_verifier' for <Function test_accept_proof_request_verifier_has_issuer_role[clean-clean-clean-clean-clean-trust_registry]>>}
local_func = <function meld_co_issuer_verifier at 0x7f7ea9d1d580>
backend_name = 'asyncio', backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7ea95e7b30>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:103: in meld_co_issuer_verifier
    issuer_and_verifier_tenant = await create_issuer_and_verifier_tenant(
app/tests/util/tenants.py:44: in create_issuer_and_verifier_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7ea29f4530>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/test_revocation.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_revocation.test_get_pending_revocations_bad_payload[clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_clear_pending_revokes[clean-clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7fa0867b7f60>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7fa083739790>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7fa083384ef0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException

Check failure on line 1 in app/tests/e2e/issuer/test_indy_credentials.py

See this annotation in the file changed.

@github-actions github-actions / JUnit Test Report

test_indy_credentials.test_revoke_credential[clean-clean-clean-clean-clean]

failed on setup with "fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}"
Raw output
self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
method = 'post', url = '/v1/tenants'
kwargs = {'json': {'extra_settings': None, 'group_id': 'IssuerGroup', 'image_url': None, 'roles': ['issuer'], ...}}
attempt = 0, response = <Response [500 Internal Server Error]>, code = 500

    async def _request_with_retries(self, method: str, url: str, **kwargs) -> Response:
        for attempt in range(self.retries):
            try:
                response = await getattr(super(), method)(url, **kwargs)
>               return await self._handle_response(response)

shared/util/rich_async_client.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
shared/util/rich_async_client.py:50: in _handle_response
    response.raise_for_status()  # Raise exception for 4xx and 5xx status codes
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Response [500 Internal Server Error]>

    def raise_for_status(self) -> Response:
        """
        Raise the `HTTPStatusError` if one occurred.
        """
        request = self._request
        if request is None:
            raise RuntimeError(
                "Cannot call `raise_for_status` as the request "
                "instance has not been set on this response."
            )
    
        if self.is_success:
            return self
    
        if self.has_redirect_location:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "Redirect location: '{0.headers[location]}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
        else:
            message = (
                "{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'\n"
                "For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}"
            )
    
        status_class = self.status_code // 100
        error_types = {
            1: "Informational response",
            3: "Redirect response",
            4: "Client error",
            5: "Server error",
        }
        error_type = error_types.get(status_class, "Invalid status code")
        message = message.format(self, error_type=error_type)
>       raise HTTPStatusError(message, request=request, response=self)
E       httpx.HTTPStatusError: Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'
E       For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500

/usr/local/lib/python3.12/site-packages/httpx/_models.py:829: HTTPStatusError

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

anyio_backend = 'asyncio'
request = <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>
args = ()
kwargs = {'request': <SubRequest 'faber_issuer' for <Function test_send_credential_oob[clean-clean-clean-clean]>>}
local_func = <function faber_issuer at 0x7f7b8096c360>, backend_name = 'asyncio'
backend_options = {}
runner = <anyio._backends._asyncio.TestRunner object at 0x7f7b799df8c0>

    def wrapper(
        *args: Any, anyio_backend: Any, request: SubRequest, **kwargs: Any
    ) -> Any:
        # Rebind any fixture methods to the request instance
        if (
            request.instance
            and ismethod(func)
            and type(func.__self__) is type(request.instance)
        ):
            local_func = func.__func__.__get__(request.instance)
        else:
            local_func = func
    
        backend_name, backend_options = extract_backend_and_options(anyio_backend)
        if has_backend_arg:
            kwargs["anyio_backend"] = anyio_backend
    
        if has_request_arg:
            kwargs["request"] = request
    
        with get_runner(backend_name, backend_options) as runner:
            if isasyncgenfunction(local_func):
>               yield from runner.run_asyncgen_fixture(local_func, kwargs)

/usr/local/lib/python3.12/site-packages/anyio/pytest_plugin.py:98: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2278: in run_asyncgen_fixture
    fixturevalue: T_Retval = self.get_loop().run_until_complete(
/usr/local/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2270: in _call_in_runner_task
    return await future
/usr/local/lib/python3.12/site-packages/anyio/_backends/_asyncio.py:2237: in _run_tests_and_fixtures
    retval = await coro
app/tests/fixtures/member_wallets.py:83: in faber_issuer
    issuer_tenant = await create_issuer_tenant(admin_client, "faber")
app/tests/util/tenants.py:26: in create_issuer_tenant
    return await post_tenant_request(admin_client, request)
app/tests/util/tenants.py:16: in post_tenant_request
    response = await admin_client.post(TENANT_BASE_PATH, json=request.model_dump())
shared/util/rich_async_client.py:81: in post
    return await self._request_with_retries("post", url, **kwargs)
shared/util/rich_async_client.py:78: in _request_with_retries
    await self._handle_error(e, url, method)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <shared.util.rich_async_client.RichAsyncClient object at 0x7f7b79136bd0>
e = HTTPStatusError("Server error '500 Internal Server Error' for url 'https://multitenant-web.cloudapi.dev.didxtech.com/tenant-admin/v1/tenants'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500")
url = '/v1/tenants', method = 'post'

    async def _handle_error(self, e: HTTPStatusError, url: str, method: str) -> None:
        code = e.response.status_code
        message = e.response.text
        log_message = (
            f"{self.name} {method} `{url}` failed. "
            f"Status code: {code}. Response: `{message}`."
        )
        logger.error(log_message)
>       raise HTTPException(status_code=code, detail=message) from e
E       fastapi.exceptions.HTTPException: 500: {"detail":"Error creating connection with endorser: Timeout waiting for endorsement"}

shared/util/rich_async_client.py:61: HTTPException