We have narrowed a second failure associated with this package representation. The following separates native observations from provider-only reproduction.
On the same macOS build, the isolated RTFD and Numbers package tests materialized successfully. Their retained native trees contain a package root but no independently registered member items. Other existing packages instead have both the package root and six immediate children registered as separate File Provider items. The native dump explicitly reports “Item parented to non-directory” at that relationship. Native remote-to-local child creation repeatedly fails with NSPOSIXErrorDomain 22 and cannotOpenByHandle. These are system application failures, not upload createItem errors. Root identity and its materialized directory agree; the log does not identify the exact rejected handle.
Using our existing production callbacks and enumerators with a synthetic directory package, we reproduced the projection difference without a registered native domain:
The root has one stable itemIdentifier and parentItemIdentifier. contentType is exactly com.apple.package. At runtime it conforms to public.directory and com.apple.package, but not public.folder. Lookup, parent-folder enumeration, mutation completion and whole-package fetch agree on that type and the represented content version. Capabilities agree across those paths. We implement contentType; the selected macOS SDK marks typeIdentifier unavailable.
Explicit enumeration of the package ID returns its six direct members with their own stable IDs and the package ID as parent. Whole-package fetch also returns those members inside the reconstructed directory, with the version describing that content.
Initial working-set enumeration of a root-only materialized roster emits only the package root.
A member-create change processed while the package root is materialized emits the root update first and then the independent member. A reported-but-not-materialized root does not make the new child eligible. Once a child has been reported, a subsequent member update remains eligible after reopening the persisted provider state, even without materialized membership.
This reproduces our callback output, not Apple's rejection in an isolated framework test. We do not have the historical membership timing needed to claim exactly how the affected native records were introduced. Retained creation receipts support whole-package create/retry; their early backend root receipt does not prove early completion to the system.
For a root represented and fetched as a package, should internal members ever be independently presented as native File Provider items? If this projection is invalid, which documented operation reconciles already retained child records while preserving stable remote identities and any uncommitted local package/member edits? Is there a supported metadata correction for this case?
Simply omitting future members does not establish recovery of already pending child operations. We have not sent deletion events for still-existing members, reported them missing, changed the root to public.folder, cleared state, replaced identities or recreated a domain. The reimportItems documentation concerns invalid identifiers, may reimport beyond the requested subtree, and schedules createItem with mayAlreadyExist; these identifiers are still valid. Its applicability and preservation behavior for this specific transition remain unclear.
The original directory-URL handoff contract question also remains open. We are seeking the supported package/child projection and existing-state transition, without introducing an archive storage format or a separate synchronization mechanism.
Topic:
App & System Services
SubTopic:
Core OS
Tags: