microsoft / microsoft/PowerApps-Tooling

pac canvas unpack should identify duplicate property ownership behind PA3003

Open
#803 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
442
Forks
124
Avg merge
22h 38m
Merged PRs (30d)
4

Description

Summary

pac canvas unpack reports PA3003 / PA3011 when a canvas package contains a duplicated control property emitted once as a normal rule and once through dynamic/source metadata. The error is actionable, but the diagnostics point only to generated YAML line numbers and do not identify the source control/property ownership conflict in the .msapp JSON.

This came up while round-tripping a Power Apps canvas app package that had a duplicate ZIndex property on a gallery template-derived control. The local remediation was to strip gallery-template ZIndex state before packing, but the tooling error was difficult to map back to source.

Environment

  • pac version failed: Command '['pac', '--version']' returned non-zero exit status 1.
  • Darwin JNPR-MAC-KH9J9F 25.4.0 Darwin Kernel Version 25.4.0: Thu Mar 19 19:33:25 PDT 2026; root:xnu-12377.101.15~1/RELEASE_ARM64_T6041 arm64
  • Source format version observed by pac canvas unpack: 0.24
  • App type: classic canvas app, exported/imported .msapp

Expected behavior

The tooling should either emit a source-path/control-name/property diagnostic for duplicate property ownership before YAML generation, or normalize duplicate property ownership deterministically when one copy is metadata/dynamic state and the other is an ordinary rule.

Actual behavior

pac canvas unpack fails roundtrip validation with PA3003 and PA3011 and only reports generated YAML line numbers.

Full error log

'pac canvas unpack' and 'pac canvas pack' are deprecated, and will be removed in a future release.
Unpack from /Users/mhickok/Documents/LRE-Workbench/output/lre-workbench-remediations-view-download-20260527T082954Z/LRE-Workbench-remediations-view-download.msapp --> /Users/mhickok/Documents/LRE-Workbench/output/lre-workbench-remediations-view-download-20260527T082954Z/pac-unpack
  source format version: 0.24
Microsoft PowerPlatform CLI
Version: 2.4.1+g3799f3e (.NET 10.0.5)
Online documentation: https://aka.ms/PowerPlatformCLI
Feedback, Suggestions, Issues: https://github.com/microsoft/powerplatform-build-tools/discussions

Error: Error   PA3003: Parse error: Property was already defined on line 2911 and now on line 2912.
Error   PA3011: Roundtrip validation on unpack failed. 
You have found a bug; this is not a specific bug, rather an indicator that some bug has been encountered.
Please open an issue and log the entirety of this error log at https://github.com/microsoft/PowerApps-Language-Tooling




Contributor guide

No contributing guide indexed for this repository

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 reported PA3003 and PA3011 failure with pac canvas unpack on a package containing duplicate control-property ownership. Trace the unpack validation and generated YAML diagnostic path; done means the error identifies the source control and property conflict, or duplicate metadata handling is defined and covered by validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
cli, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.