Skip to content

HTTPError: 404 Client Error: Not Found for url: https://storage.googleapis.com/... when using REMOTE_EMUFREE #155

@wdscoelhopasqal

Description

@wdscoelhopasqal

When I run the following code

from mis import MISSolver, MISInstance, SolverConfig, BackendConfig, BackendType, MethodType
import networkx as nx
import my_functions as mf

my_cloud_credentials = mf.get_cloud_credentials("my_cloud_credentials.txt")
G = nx.Graph([(4, 9), (4, 10), (5, 6), (5, 7), (6, 7), (9, 10)])

config = SolverConfig(
    backend = BackendConfig(
        backend=BackendType.REMOTE_EMUMPS,#
        username=my_cloud_credentials["username"],
        project_id=my_cloud_credentials["project_id"],
        password=my_cloud_credentials["password"]
    ),
    method = MethodType.EAGER,
    max_iterations=1,
    preprocessor=None,
    postprocessor=None
)
instance = MISInstance(G)

# Run the solver
solver = MISSolver(instance, config)
solutions = solver.solve()

# Display results
print("MIS solution:", solutions[0].nodes)
print("Solution cost:", solutions[0].frequency)
solutions[0].draw()

I get the following error


---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
Cell In[13], line 23
     21 # Run the solver
     22 solver = MISSolver(instance, config)
---> 23 solutions = solver.solve()
     25 # Display results
     26 print("MIS solution:", solutions[0].nodes)

File ~/fasttrack/lib/python3.10/site-packages/mis/solver/solver.py:61, in MISSolver.solve(self)
     59     nodes = list(self.instance.graph.nodes)
     60     return [MISSolution(self.instance, nodes, frequency=1)]
---> 61 return self._solver.solve()

File ~/fasttrack/lib/python3.10/site-packages/mis/solver/solver.py:208, in MISSolverQuantum.solve(self)
    196 register = self._embedder.embed(
    197     instance=preprocessed_instance,
    198     config=self.config,
    199     backend=self.backend,
    200 )
    202 pulse = self._shaper.generate(
    203     config=self.config,
    204     register=register,
    205     backend=self.backend,
    206     instance=preprocessed_instance,
    207 )
--> 208 execution_result = self.execute(pulse, register)
    209 return self._process(instance=preprocessed_instance, data=execution_result)

File ~/fasttrack/lib/python3.10/site-packages/mis/solver/solver.py:223, in MISSolverQuantum.execute(self, pulse, register)
    212 """
    213 Execute the pulse schedule on the backend and retrieve the solution.
    214 
   (...)
    220     Result: The solution from execution.
    221 """
    222 program = QuantumProgram(register=register, pulse=pulse, device=self.backend.device())
--> 223 counts = self.backend.run(program=program, runs=self.config.runs).counts
    224 assert isinstance(counts, Counter)  # Not sure why mypy expects that `counts` is `Any`.
    225 return counts

File ~/fasttrack/lib/python3.10/site-packages/qoolqit/_solvers/backends/base_backend.py:120, in BaseBackend.run(self, program, runs)
    103 def run(self, program: QuantumProgram, runs: int | None = None) -> Result:
    104     """
    105     Submit a quantum program for execution and wait for its result.
    106 
   (...)
    118     performance of other threads.
    119     """
--> 120     return self.submit(program, runs).wait()

File ~/fasttrack/lib/python3.10/site-packages/qoolqit/_solvers/backends/remote_backends.py:95, in RemoteJob.wait(self)
     93     # FIXME: This is subject to race condition.
     94     raise self._error
---> 95 counter = job.result
     96 assert isinstance(counter, dict)
     97 counter = cast(Counter[str], counter)

File ~/fasttrack/lib/python3.10/site-packages/pasqal_cloud/job.py:68, in Job.result(self)
     65 @property
     66 def result(self) -> Optional[Dict[str, Any]]:
     67     counter_result = None
---> 68     if self.full_result:
     69         counter_result = self.full_result["counter"]
     70     return counter_result

File ~/fasttrack/lib/python3.10/site-packages/pasqal_cloud/job.py:62, in Job.full_result(self)
     59 @property
     60 def full_result(self) -> Optional[JobResult]:
     61     if self._full_result is None:
---> 62         self._full_result = self._client.get_job_results(self.id)
     63     return self._full_result

File ~/fasttrack/lib/python3.10/site-packages/pasqal_cloud/client.py:342, in Client.get_job_results(self, job_id)
    338 results_link = self._authenticated_request(
    339     "GET", self._get_url("get_job_results_link", job_id=job_id)
    340 )["data"]["results_link"]
    341 if results_link:
--> 342     return self._download_results(results_link)
    343 return None

File ~/fasttrack/lib/python3.10/site-packages/pasqal_cloud/utils/retry.py:46, in retry_http_error..decorator..wrapper(*args, **kwargs)
     37 except HTTPError as e:
     38     if (
     39         e.response is None
     40         or (
   (...)
     44         or iteration == max_retries
     45     ):
---> 46         raise e
     47     time.sleep(delay)
     48 except Exception as e:

File ~/fasttrack/lib/python3.10/site-packages/pasqal_cloud/utils/retry.py:36, in retry_http_error..decorator..wrapper(*args, **kwargs)
     34 delay = 2**iteration
     35 try:
---> 36     response = func(*args, **kwargs)
     37 except HTTPError as e:
     38     if (
     39         e.response is None
     40         or (
   (...)
     44         or iteration == max_retries
     45     ):

File ~/fasttrack/lib/python3.10/site-packages/pasqal_cloud/client.py:325, in Client._download_results(self, results_link)
    322 @retry_http_error(max_retries=5, retry_exceptions=(requests.ConnectionError,))
    323 def _download_results(self, results_link: str) -> JobResult:
    324     response = self.session.request("GET", results_link)
--> 325     response.raise_for_status()
    326     data = response.json()
    327     return JobResult(
    328         raw=data.pop("raw", None), counter=data.pop("counter", None), **data
    329     )

File ~/fasttrack/lib/python3.10/site-packages/requests/models.py:1026, in Response.raise_for_status(self)
   1021     http_error_msg = (
   1022         f"{self.status_code} Server Error: {reason} for url: {self.url}"
   1023     )
   1025 if http_error_msg:
-> 1026     raise HTTPError(http_error_msg, response=self)

HTTPError: 404 Client Error: Not Found for url: https://storage.googleapis.com/sw-workloads-prod-fr/batches/58d05799-3984-4d0e-b37f-dc1757335cfd/results/6f326c4f-cfdc-4a29-9382-3f609271fc29?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=GOOG1EWBZFXPYMZV2IFS7LRNLI4X2AQTTP3YECNUGJ3A4AHXMZIA7S4NMQBKX%2F20251013%2Feurope-west9%2Fs3%2Faws4_request&X-Amz-Date=20251013T112740Z&X-Amz-Expires=60&X-Amz-SignedHeaders=host&X-Amz-Signature=3870bd347db1b59128ff8c4f91174c3f58832e0e9536c1ea5d4e85016803f2ad

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions