My hugr, which included non-std extensions, was invalid after passing through tket.
The following fixed it:
fn wrap_package(&self) -> Result<Package, EnvelopeError> {
let hugr = Circuit::to_owned(self).into_hugr();
let extensions = hugr.extensions().clone();
let mut package = Package::from_hugr(hugr);
package.extensions.extend(extensions);
Ok(package)
}
The docs for Package::from_hugr say you must manually add extensions.
There is another from_hugr callsite in opaque/payload.rs that may have a similar issue.