airbytehq / PyAirbyte

PyAirbyte brings the power of Airbyte to every Python developer.
https://docs.airbyte.com/pyairbyte
Other
178 stars 20 forks source link

CI Failure (flaky test?) #179

Open aaronsteers opened 2 months ago

aaronsteers commented 2 months ago

This test failed randomly. Looks like an issue on Airbyte Cloud side.

Logging here in case we want to implement a retry mechanism rather than hard-failure.

The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.

https://github.com/airbytehq/PyAirbyte/actions/runs/8639506888/job/23685937371

tests/integration_tests/cloud/test_cloud_workspaces.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
airbyte/cloud/workspaces.py:240: in _deploy_connection
    deployed_connection = create_connection(
airbyte/_util/api_util.py:455: in create_connection
    response = airbyte_instance.connections.create_connection(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <airbyte_api.connections.Connections object at 0x7fb368a5f880>
request = ConnectionCreateRequest(destination_id='1bb0b419-de0c-45c4-ac0a-4a8afcc8a702', source_id='d388cd86-1952-4d2a-a2e4-afb5...s_behavior=<NonBreakingSchemaUpdatesBehaviorEnum.IGNORE: 'ignore'>, prefix='abc_deleteme_', schedule=None, status=None)

    def create_connection(self, request: shared.ConnectionCreateRequest) -> operations.CreateConnectionResponse:
        r"""Create a connection"""
        base_url = utils.template_url(*self.sdk_configuration.get_server_details())

        url = base_url + '/connections'
        headers = ***
        req_content_type, data, form = utils.serialize_request_body(request, shared.ConnectionCreateRequest, "request", False, False, 'json')
        if req_content_type not in ('multipart/form-data', 'multipart/mixed'):
            headers['content-type'] = req_content_type
        if data is None and form is None:
            raise Exception('request body is required')
        headers['Accept'] = 'application/json'
        headers['user-agent'] = self.sdk_configuration.user_agent

        if callable(self.sdk_configuration.security):
            client = utils.configure_security_client(self.sdk_configuration.client, self.sdk_configuration.security())
        else:
            client = utils.configure_security_client(self.sdk_configuration.client, self.sdk_configuration.security)

        http_res = client.request('POST', url, data=data, files=form, headers=headers)
        content_type = http_res.headers.get('Content-Type')

        res = operations.CreateConnectionResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)

        if http_res.status_code == 200:
            if utils.match_content_type(content_type, 'application/json'):
                out = utils.unmarshal_json(http_res.text, Optional[shared.ConnectionResponse])
                res.connection_response = out
            else:
                raise errors.SDKError(f'unknown content-type received: ***content_type***', http_res.status_code, http_res.text, http_res)
        elif http_res.status_code == 400 or http_res.status_code == 403 or http_res.status_code >= 400 and http_res.status_code < 500 or http_res.status_code >= 500 and http_res.status_code < 600:
>           raise errors.SDKError('API error occurred', http_res.status_code, http_res.text, http_res)
E           airbyte_api.models.errors.sdkerror.SDKError: API error occurred: Status 502
E           
E           <html><head>
E           <meta http-equiv="content-type" content="text/html;charset=utf-8">
E           <title>502 Server Error</title>
E           </head>
E           <body text=#000000 bgcolor=#ffffff>
E           <h1>Error: Server Error</h1>
E           <h2>The server encountered a temporary error and could not complete your request.<p>Please try again in 30 seconds.</h2>
E           <h2></h2>
E           </body></html>

.venv/lib/python3.9/site-packages/airbyte_api/connections.py:45: SDKError