Change8

Migrating to Ray ray-2.47.0

Version ray-2.47.0 introduces 3 breaking changes. This guide details how to update your code.

Released: 6/12/2025

3
Breaking Changes
7
Migration Steps
36
Affected Symbols

⚠️ Check Your Code

If you use any of these symbols, you need to read this guide:

RayData.from_torchRayData.move_tensors_to_deviceRayData.ActorPoolRayData.FileBasedDatasourceRayData.ConcatenatorRayData.InternalQueueOperatorRayTrain.TrainControllerStateRayTrain.move_tensors_to_deviceRayServe.custom_request_routingRayServe.ENV_PRIORITY_CUSTOM_RESOURCESRayServe.ingress_builderRayServe.runtime_env.validation_py_modulesRayServe.deployment_name_validationRayServe.LLMRouter.check_healthRayServe.LLMServer.check_healthRayServe.build_llm_deploymentRayServe.check_health_return_typeRayServe.StreamBatchingRLlib.offline_evaluation_gpu_inferenceRLlib.weight_sync_offlineRLlib.split_and_zero_padRayCore.uv_run_integrationRayCore.RAY_ENABLE_UV_RUN_RUNTIME_ENVRayCore.RuntimeEnv_job_submissionRayCore.Raylet_child_pipe_fdRayCore.RestartActor_rpcRayCore.worker_graceful_shutdownDashboard.dynologDashboard.grafana_orgId_paramRayTune.tune.reportRayContainerImages.h11RayContainerImages.requestsRayContainerImages.starletteRayContainerImages.jinja2RayContainerImages.pyopensslRayContainerImages.cryptography

Breaking Changes

Issue #1

Blocking pipeline is disabled by default in Ray Data; code that relied on the previous blocking behavior may need to enable it explicitly or adjust logic.

Issue #2

Special characters are now disallowed in Ray Serve deployment and application names, causing previously valid names to raise errors; rename deployments/applications to remove special characters.

Issue #3

uv run integration is enabled by default in Ray Core, changing runtime‑env behavior for drivers and workers; set RAY_ENABLE_UV_RUN_RUNTIME_ENV=0 to retain the old behavior.

Migration Steps

  1. 1
    If your Ray Data pipelines relied on blocking behavior, explicitly enable blocking or adjust the pipeline to work with the new non‑blocking default.
  2. 2
    Rename any Ray Serve deployment or application names to remove special characters that are now prohibited.
  3. 3
    To retain the previous uv run behavior, set the environment variable RAY_ENABLE_UV_RUN_RUNTIME_ENV=0 before launching Ray.
  4. 4
    Update imports in Ray Tune code from session.report to tune.report and adjust any related call sites.
  5. 5
    Ensure py_modules entries in runtime_env conform to the new stricter validation rules.
  6. 6
    Update code that calls LLMRouter.check_health to handle the updated return type and to rely on LLMServer.check_health.
  7. 7
    If you used the old builder signature for the Ray Serve ingress API, modify it to accept a builder function as an alternative to an ASGI app object.

Release Summary

This release adds major LLM serving capabilities, custom routing, and numerous performance and observability improvements across Ray Data, Train, Serve, RLlib, and the Dashboard, while also introducing several breaking changes such as non‑blocking pipelines, stricter Serve name validation, and default uv run integration.

Need More Details?

View the full release notes and all changes for Ray ray-2.47.0.

View Full Changelog