openml / openml/OpenML

Unable to publish the results

Open
#1,319 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PHP
Stars
755
Forks
128
PR merge metrics
No merged PRs in 30d

Description

Description

I am trying to publish a machine learning run using a custom scikit-learn pipeline via the Python API. However, the run.publish() method consistently fails due to server-side HTTP errors (504 Gateway Time-out and 503 Service Temporarily Unavailable) when making a request to the /api/v1/xml/flow/exists endpoint.

The issue seems to be server-side or related to how the server parses the serialized flow of a custom pipeline.

Steps/Code to Reproduce
import openml

# Authenticate with API key
openml.config.apikey = 'YOUR_API_KEY'

# Retrieve a task (e.g., Task 3)
task = openml.tasks.get_task(3)

# Evaluate a custom scikit-learn Pipeline (Routernet)
run = openml.runs.run_model_on_task(routernet_model, task, seed=1)

# Attempt to publish the run and flow
run.publish()

Expected Results

The flow and run are successfully processed and published to the OpenML server without timing out.

Actual Results

The flow/exists API endpoint fails, aborting the publish process and returning Nginx error pages:

Initial failure (504 Timeout):

publish failed for task 3: Unexpected server error when calling https://www.openml.org/api/v1/xml/flow/exists. Please contact the developers!
Status code: 504
<html>
<head><title>504 Gateway Time-out</title></head>
<body>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx</center>
</body>
</html>

Subsequent failures (503 Unavailable):

publish failed for task 6: Unexpected server error when calling https://www.openml.org/api/v1/xml/flow/exists. Please contact the developers!
Status code: 503
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
<hr><center>nginx</center>
</body>
</html>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with the Python API example, a custom scikit-learn pipeline, and task 3, then trace run.publish() through the /api/v1/xml/flow/exists request. Compare the 504 and 503 responses and determine which server-side flow handling is involved. Done means the flow and run publish successfully without those errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, scikit-learn
Domain
api, backend, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.