Skip to content

hosting:clone no longer finds a source site in another project (15.33.0) #11247

Closed

Description

@sebr

[REQUIRED] Environment info

firebase-tools: 15.33.0 (works on 15.31.0)

Platform: macOS

[REQUIRED] Test case

Two Firebase projects:

  • project-a, which owns hosting site site-a
  • project-b, which owns hosting site site-b

We promote releases by cloning the live channel from one project's site to another's.

[REQUIRED] Steps to reproduce

firebase hosting:clone site-a:live site-b:live --project=project-b

[REQUIRED] Expected behavior

The live version of site-a is cloned to site-b:live, as in 15.31.0 and earlier. Site IDs are unique across all projects, so the CLI could find site-a without being told its project.

[REQUIRED] Actual behavior

GET https://firebasehosting.googleapis.com/v1beta1/projects/project-b/sites/site-a/channels/live 404
{"error":{"code":404,"message":"site `site-a` was not found on project `project-b`","status":"NOT_FOUND"}}

Error: Could not find the channel live for site site-a.

This seems to come from #11229, which replaced the - project wildcard with explicit project IDs. Now the source project defaults to --project. Writing the source as project-a:site-a:live works on 15.33.0, but 15.31.0 can't read that form. So a script can't support both versions, and existing cross-project hosting:clone scripts broke in a minor release.

Could you either:

  1. look up the source site with the - wildcard when the source has no project, as before, or
  2. mark this as a breaking change in the changelog and the hosting:clone help text, and have the error suggest the project:site:channel form when the site exists in another project?

Activity

  1. aalej commented on Oct 8, 2026

    @aalej
    Contributor

    Thanks for the thorough report @sebr! I am able to reproduce the issue. I'll check this with our engineering team to see if we can restore the old behavior or update the release notes and add an clear error suggesting the new format(<project>:<site>:<channel>) when the source/target site is on another project.

    mcve - https://github.com/aalej/issues-11247

  2. self-assigned this
    on Oct 13, 2026
  3. bkendall commented on Oct 13, 2026

    @bkendall
    Contributor

    ah - sorry, I didn't quite realize that this ends up breaking things so drastically. I'm going to attempt to un-breaking-change this so that the project ID isn't absolutely required (but it should still use the project ID in the API calls that it makes).

  4. added a commit that references this issue on Oct 13, 2026
    d6fe17e
  5. added a commit that references this issue on Oct 14, 2026
    3462e56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions