Support Ticket: CopyProjectV3/V4 API Incorrectly Returns “Copy project cannot be done for opened project” for Newly Created Target Project
Issue Summary
We are encountering a blocking issue when using the CopyProjectV3 and CopyProjectV4 APIs in Dynamics 365 Project Operations. When we create a new, empty target project and supply it in the CopyProject request, the API returns the following error
Invalid Request: Copy project cannot be done for opened project
This happens even though the target project is newly created and has not been accessed or modified by any user or process.
Detailed Description
Observed Behavior
-
A target project is created seconds before calling CopyProject.
-
The project is in statecode = 0 (Draft) with default status values.
-
The project has no resource assignments, no activities, and no related records.
-
No plugins, workflows, Power Automate flows, or business rules interact with the project.
-
The project is not accessed or opened in the UI.
-
Despite this, the API returns “opened project” validation failure.
-
Identical behavior occurs for both CopyProjectV3 and CopyProjectV4 using the same payloads
Expected Behavior
The API should accept a newly created, draft-state project as a valid target and complete the copy successfully — especially since Microsoft documentation indicates that supplying a custom TargetProject is a supported pattern.
Questions for Microsoft
To proceed, we need clarification on the following:
-
What exact state/status must a target project be in for the API to consider it “not opened”?
-
Is supplying a custom TargetProject officially supported for CopyProjectV3/V4?
-
Is there a known issue or regression causing the API to misclassify newly created projects as opened?
-
Is there an internal field or flag (e.g.,
msdyn_isopened) used by the API that may incorrectly be set during creation?
Impact
This issue prevents us from using the recommended automated project creation pattern. Because the API incorrectly flags new projects as “opened,” we cannot execute CopyProject when providing our own target project. This is blocking our deployment.


Report
All responses (
Answers (