Search code examples
kubernetesjupyterminikubekubeflow

How do I solve kubeflow notebook internal server error


When I run this kubeflow tutorial notebook, I got ApiException: (500) Reason: Internal Server Error.

Environment:

  • minikube version: (Server version v1.21.14)
  • kubectl version: v1.21.14

Code snippet:

# Specify pipeline argument values
arguments = {'a': '7', 'b': '8'}
# Launch a pipeline run given the pipeline function definition
kfp.Client().create_run_from_pipeline_func(calc_pipeline, arguments=arguments, 
                                           experiment_name=EXPERIMENT_NAME)
# The generated links below lead to the Experiment page and the pipeline run details page, respectively

Error message:

--------------------------------------------------------------------------- ApiException                              Traceback (most recent call
> last) Input In [8], in <cell line: 4>()
>       2 arguments = {'a': '7', 'b': '8'}
>       3 # Launch a pipeline run given the pipeline function definition
> ----> 4 kfp.Client().create_run_from_pipeline_func(calc_pipeline, arguments=arguments, 
>       5                                            experiment_name=EXPERIMENT_NAME)
> 
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:781, in
> Client.create_run_from_pipeline_func(self, pipeline_func, arguments,
> run_name, experiment_name, pipeline_conf, namespace, mode,
> launcher_image, pipeline_root)
>     775 pipeline_package_path = os.path.join(tmpdir, 'pipeline.yaml')
>     776 compiler.Compiler(mode=mode, launcher_image=launcher_image).compile(
>     777   pipeline_func=pipeline_func,
>     778   package_path=pipeline_package_path,
>     779   pipeline_conf=pipeline_conf)
> --> 781 return self.create_run_from_pipeline_package(
>     782   pipeline_file=pipeline_package_path,
>     783   arguments=arguments,
>     784   run_name=run_name,
>     785   experiment_name=experiment_name,
>     786   namespace=namespace,
>     787   pipeline_root=pipeline_root,
>     788 )
> 
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:842, in
> Client.create_run_from_pipeline_package(self, pipeline_file,
> arguments, run_name, experiment_name, namespace, pipeline_root)
>     838 experiment_name = overridden_experiment_name or 'Default'
>     839 run_name = run_name or (pipeline_name + ' ' +
>     840                         datetime.datetime.now().strftime(
>     841                             '%Y-%m-%d %H-%M-%S'))
> --> 842 experiment = self.create_experiment(name=experiment_name, namespace=namespace)
>     843 run_info = self.run_pipeline(
>     844     experiment_id=experiment.id,
>     845     job_name=run_name,
>     846     pipeline_package_path=pipeline_file,
>     847     params=arguments,
>     848     pipeline_root=pipeline_root)
>     849 return RunPipelineResult(self, run_info)
> 
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:366, in
> Client.create_experiment(self, name, description, namespace)
>     364 experiment = None
>     365 try:
> --> 366   experiment = self.get_experiment(experiment_name=name, namespace=namespace)
>     367 except ValueError as error:
>     368   # Ignore error if the experiment does not exist.
>     369   if not str(error).startswith('No experiment is found with name'):
> 
> File /opt/conda/lib/python3.8/site-packages/kfp/_client.py:478, in
> Client.get_experiment(self, experiment_id, experiment_name, namespace)
>     468 experiment_filter = json.dumps({ 
>     469     "predicates": [ 
>     470       {     (...)
>     475     ] 
>     476   })
>     477 if namespace:
> --> 478   result = self._experiment_api.list_experiment(
>     479     filter=experiment_filter,
>     480     resource_reference_key_type=kfp_server_api.models.api_resource_type.ApiResourceType.NAMESPACE,
> 
>     481     resource_reference_key_id=namespace)
>     482 else:
>     483   result = self._experiment_api.list_experiment(filter=experiment_filter)
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api/experiment_service_api.py:567,
> in ExperimentServiceApi.list_experiment(self, **kwargs)
>     532 """Finds all experiments. Supports pagination, and sorting on certain fields.  # noqa: E501
>     533 
>     534 This method makes a synchronous HTTP request by default. To make an    (...)
>     564 :rtype: ApiListExperimentsResponse
>     565 """
>     566 kwargs['_return_http_data_only'] = True
> --> 567 return self.list_experiment_with_http_info(**kwargs)
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api/experiment_service_api.py:668,
> in ExperimentServiceApi.list_experiment_with_http_info(self, **kwargs)
>     665 # Authentication setting
>     666 auth_settings = ['Bearer']  # noqa: E501
> --> 668 return self.api_client.call_api(
>     669     '/apis/v1beta1/experiments', 'GET',
>     670     path_params,
>     671     query_params,
>     672     header_params,
>     673     body=body_params,
>     674     post_params=form_params,
>     675     files=local_var_files,
>     676     response_type='ApiListExperimentsResponse',  # noqa: E501
>     677     auth_settings=auth_settings,
>     678     async_req=local_var_params.get('async_req'),
>     679     _return_http_data_only=local_var_params.get('_return_http_data_only'),  # noqa: E501
>     680     _preload_content=local_var_params.get('_preload_content', True),
>     681     _request_timeout=local_var_params.get('_request_timeout'),
>     682     collection_formats=collection_formats)
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:364,
> in ApiClient.call_api(self, resource_path, method, path_params,
> query_params, header_params, body, post_params, files, response_type,
> auth_settings, async_req, _return_http_data_only, collection_formats,
> _preload_content, _request_timeout, _host)
>     327 """Makes the HTTP request (synchronous) and returns deserialized data.
>     328 
>     329 To make an async_req request, set the async_req parameter.    (...)
>     361     then the method will return the response directly.
>     362 """
>     363 if not async_req:
> --> 364     return self.__call_api(resource_path, method,
>     365                            path_params, query_params, header_params,
>     366                            body, post_params, files,
>     367                            response_type, auth_settings,
>     368                            _return_http_data_only, collection_formats,
>     369                            _preload_content, _request_timeout, _host)
>     371 return self.pool.apply_async(self.__call_api, (resource_path,
>     372                                                method, path_params,
>     373                                                query_params,    (...)
>     381                                                _request_timeout,
>     382                                                _host))
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:188,
> in ApiClient.__call_api(self, resource_path, method, path_params,
> query_params, header_params, body, post_params, files, response_type,
> auth_settings, _return_http_data_only, collection_formats,
> _preload_content, _request_timeout, _host)
>     186 except ApiException as e:
>     187     e.body = e.body.decode('utf-8') if six.PY3 else e.body
> --> 188     raise e
>     190 content_type = response_data.getheader('content-type')
>     192 self.last_response = response_data
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:181,
> in ApiClient.__call_api(self, resource_path, method, path_params,
> query_params, header_params, body, post_params, files, response_type,
> auth_settings, _return_http_data_only, collection_formats,
> _preload_content, _request_timeout, _host)
>     177     url = _host + resource_path
>     179 try:
>     180     # perform request and return response
> --> 181     response_data = self.request(
>     182         method, url, query_params=query_params, headers=header_params,
>     183         post_params=post_params, body=body,
>     184         _preload_content=_preload_content,
>     185         _request_timeout=_request_timeout)
>     186 except ApiException as e:
>     187     e.body = e.body.decode('utf-8') if six.PY3 else e.body
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/api_client.py:389,
> in ApiClient.request(self, method, url, query_params, headers,
> post_params, body, _preload_content, _request_timeout)
>     387 """Makes the HTTP request using RESTClient."""
>     388 if method == "GET":
> --> 389     return self.rest_client.GET(url,
>     390                                 query_params=query_params,
>     391                                 _preload_content=_preload_content,
>     392                                 _request_timeout=_request_timeout,
>     393                                 headers=headers)
>     394 elif method == "HEAD":
>     395     return self.rest_client.HEAD(url,
>     396                                  query_params=query_params,
>     397                                  _preload_content=_preload_content,
>     398                                  _request_timeout=_request_timeout,
>     399                                  headers=headers)
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/rest.py:230, in
> RESTClientObject.GET(self, url, headers, query_params,
> _preload_content, _request_timeout)
>     228 def GET(self, url, headers=None, query_params=None, _preload_content=True,
>     229         _request_timeout=None):
> --> 230     return self.request("GET", url,
>     231                         headers=headers,
>     232                         _preload_content=_preload_content,
>     233                         _request_timeout=_request_timeout,
>     234                         query_params=query_params)
> 
> File
> /opt/conda/lib/python3.8/site-packages/kfp_server_api/rest.py:224, in
> RESTClientObject.request(self, method, url, query_params, headers,
> body, post_params, _preload_content, _request_timeout)
>     221     logger.debug("response body: %s", r.data)
>     223 if not 200 <= r.status <= 299:
> --> 224     raise ApiException(http_resp=r)
>     226 return r
> 
> ApiException: (500) Reason: Internal Server Error HTTP response
> headers: HTTPHeaderDict({'content-type': 'application/json', 'date':
> 'Sun, 14 Aug 2022 05:07:05 GMT', 'x-envoy-upstream-service-time':
> '26', 'server': 'envoy', 'transfer-encoding': 'chunked'}) HTTP
> response body: {"error":"Internal error: Unauthenticated: Request
> header error: there is no user identity header.: Request header error:
> there is no user identity header.\nFailed to authorize with API
> resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","code":13,"message":"Internal
> error: Unauthenticated: Request header error: there is no user
> identity header.: Request header error: there is no user identity
> header.\nFailed to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","details":[{"@type":"type.googleapis.com/api.Error","error_message":"Internal
> error: Unauthenticated: Request header error: there is no user
> identity header.: Request header error: there is no user identity
> header.\nFailed to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581","error_details":"Internal
> error: Unauthenticated: Request header error: there is no user
> identity header.: Request header error: there is no user identity
> header.\nFailed to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).canAccessExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:249\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:148\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581\nFailed
> to authorize with API resource
> references\ngithub.com/kubeflow/pipelines/backend/src/common/util.Wrap\n\t/go/src/github.com/kubeflow/pipelines/backend/src/common/util/error.go:287\ngithub.com/kubeflow/pipelines/backend/src/apiserver/server.(*ExperimentServer).ListExperiment\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/server/experiment_server.go:150\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler.func1\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1089\nmain.apiServerInterceptor\n\t/go/src/github.com/kubeflow/pipelines/backend/src/apiserver/interceptor.go:30\ngithub.com/kubeflow/pipelines/backend/api/go_client._ExperimentService_ListExperiment_Handler\n\t/go/src/github.com/kubeflow/pipelines/backend/api/go_client/experiment.pb.go:1091\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1282\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:1616\ngoogle.golang.org/grpc.(*Server).serveStreams.func1.2\n\t/go/pkg/mod/google.golang.org/[email protected]/server.go:921\nruntime.goexit\n\t/usr/local/go/src/runtime/asm_amd64.s:1581"}]}

Update

After I got the comment from Adiii, I try again.
I got 404 response error. KeyError: 'authservice_session' caused by the error.
I do port-forwarding by
kubectl port-forward svc/istio-ingressgateway -n istio-system 8888:80

Code snippet:

import requests

HOST = "http://localhost:8888/"
USERNAME = "[email protected]"
PASSWORD = "12341234"
NAMESPACE = "kubeflow-user-example-com"

session = requests.Session()
response = session.get(HOST)
print(response)
headers = {
    "Content-Type": "application/x-www-form-urlencoded",
}

data = {"login": USERNAME, "password": PASSWORD}
session.post(response.url, headers=headers, data=data)
session_cookie = session.cookies.get_dict()["authservice_session"]

client = kfp.Client(
    host=f"{HOST}/pipeline",
    cookies=f"authservice_session={session_cookie}",
    namespace=NAMESPACE,
)

print(client.list_pipelines())

Error message:

<Response [404]>
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Input In [8], in <cell line: 17>()
     15 data = {"login": USERNAME, "password": PASSWORD}
     16 session.post(response.url, headers=headers, data=data)
---> 17 session_cookie = session.cookies.get_dict()["authservice_session"]
     19 client = kfp.Client(
     20     host=f"{HOST}/pipeline",
     21     cookies=f"authservice_session={session_cookie}",
     22     namespace=NAMESPACE,
     23 )
     25 print(client.list_pipelines())

KeyError: 'authservice_session'

Solution

  • I could solve the additional issue by myself.

    kubectl get svc -n istio-system shows ip address of istio-ingressgateway.
    I used it then I can get 200 response and could run notebook successfully.