Perl::Dist::WiX::Diagnostics - The list of exceptions that Perl::Dist::WiX catches.


This documentation describes the exceptions that Perl::Dist::WiX uses in case an error occurs.


Note that most errors are defined as exception objects in the PDWiX, PDWiX::Parameter, and PDWiX::Caught classes. Those errors will start with Perl::Dist::WiX error:

Some parameter errors will be caught by Object::InsideOut. (Those errors will be in the OIO class, and are not listed here.)

This is not a complete list, but covers most of the exceptions that are caught in Perl::Dist::WiX and the modules that come with it.

Perl::Dist::WiX error:

Parameter missing or invalid

(Implemented as a PDWiX::Parameter class)

The parameter mentioned is either missing (and it is required) or invalid (for example, a string where an integer is required).

Often, but not always, exactly why the parameter is invalid is mentioned, as well.

Internal Error: Missing or invalid id

A Perl::Dist::WiX::Base::Component has been created with a missing or invalid id parameter. This should not happen.

Internal Error: Calling as_string improperly (most likely, not calling derived method)

Perl::Dist::WiX::Base::Component->as_spaces() is being called instead of one of its derived methods.

Internal Error: Odd number of parameters to add_directories_id

The Perl::Dist::WiX->add_directories_id() method takes pairs of directories and the id to use when adding them. Somehow, these got mismatched.

Can't add the directories required

The directories that are requested to be added under this directory object aren't a subdirectory of the directory being referred to by the directory object, so directory objects cannot be created within this object for them.

Internal Error: Parameters not passed in hash reference

The method referred to takes all its parameters as a hash reference (i.e. within { } brackets) and this was not done.

Can't create intermediate directories when creating %s (unsuccessful search for %s)

Perl::Dist::WiX::Directory->add_directory could not find a directory object to add the new directory object to. (add_directory can only create a directory object immediately under another one.)

Complex feature tree not implemented in Perl::Dist::WiX %s.

Having more than one feature (and supporting conditional installation of features by the user) has not been implemented in Perl::Dist::WiX at this point.

Error reading directory %s: %s

Something happened when attempting to get a list of files for the directory mentioned.

Error reading packlist file %s: %s

Something happened when attempting to read the packlist file mentioned.

Could not add %s

The file to be added to the Perl distribution was completely outside the distribution's directories, so a directory object could not be found to refer to.

The output_dir directory is not writable

The directory specified by the output_dir parameter is not writable by the current user. Specify a different directory, or have your administrator set the directory so it can be written to.

%s does not exist or is not readable

Trying to use light.exe to compile a file that cannot be read or it does not exist (someone may be trying to modify your file system from under you?)

Failed to find %s (Probably compilation error in %s)

The first file mentioned could not be found. There was probably a error in compilation of the second file.

Could not open file %s for writing [$!] [$^E]

Perl::Dist::WiX could not open the file mentioned. The reason should be specified within the brackets.

Fragment %s does not exist

An attempt to add a file or files to a fragment that had not been created yet has been detected.

%s does not support Perl %s or Cannot generate perl, missing $s method in %s

You are attempting to install a version of the perl interpreter that Perl::Dist::WiX does not support yet. If this is a new version of the interpreter, or if Perl::Dist::WiX is documented as supporting this version of the interpreter, please report this as a bug.

Failed to resolve Module::CoreList hash for %s

We could not get a hash of modules from Module::CoreList for the version of Perl mentioned.

Unknown package %s

An improper package name was passed to Perl::Dist::WiX->binary_url.

Checkpoints require a temp_dir to be set

There was no temp_dir parameter set and a checkpoint routine was called.

Failed to find checkpoint directory

Perl::Dist::WiX->checkpoint_load could not find a directory temp_dir\checkpoint to load a checkpoint from.

Either a checkpoint was never saved, or the temporary directory is different, or the checkpoint was deleted.

Did not provide a toolchain resolver

A Perl::Dist::Util::Toolchain object was not passed to Perl::Dist::WiX->install_perl_toolchain, and that method was unable to create one.

Cannot install CPAN modules yet, perl is not installed

Perl::Dist::WiX->install_cpan_upgrades was called before Perl::Dist::WiX->install_perl.

CPAN script %s failed

An error happened creating or executing the script to upgrade or install a CPAN module. The error will usually be mentioned on this line, and the debug.err and debug.out files (in the output_dir) can be examined for assistance in determining what happened.

Failure detected during cpan upgrade, stopping [%s] or Failure detected installing %s, stopping [%s]

The script to upgrade or install a CPAN module reported an error. The error will usually be mentioned on this line, and the debug.err and debug.out files (in the output_dir) can be examined for assistance in determining what happened.

Cannot build Perl yet, dmake has not been installed

install_dmake needs to be ran before install_perl.

Can't execute %s

We just installed something, but a test to make sure that it is executable did not pass.

Didn't expect install_to to be a %s

The install_to parameter was the wrong type. It either needs to be a hashref of directory mappings or a directory to install to.

Failed to extract %s

Perl::Dist::WiX->install_distribution or Perl::Dist::WiX->install_distribution_from_file could not extract the file referred to. The file may be corrupt.

Could not find Makefile.PL in %s

This module did not have a Makefile.PL when it was unpacked.

If it has only a Build.PL, it can be installed by install_module or install_modules, but not install_distribution. Otherwise, there was probably an extraction error.

No .packlist found for %s. ...

When this module was being installed, Perl::Dist::WiX was looking for a packlist in order to create a fragment for the module.

The description given with this error tells how to tell Perl::Dist::WiX to create the fragment another way.

Template processing failed for $from_tt

Perl::Dist::WiX->patch_file tried to use the template $from_tt to create a patch, and the patch creation failed.

Perl::Dist::WiX->patch_file tried to find a file with these two names to create a patch, and the patch creation failed.

Failed to find file $file

Perl::Dist::WiX->patch_file could not find the file to patch.

Failed to create $dir

Perl::Dist::WiX tried to create a directory to cache the downloaded modules in, and the creastion failed.

No write permissions for LWP::UserAgent cache '$dir'

Perl::Dist::WiX created a directory to cache the downloaded modules in, but it can't write to the cache directory.

make failed or perl failed

Trying to execute make or perl failed.

make failed (OS error) or perl failed (OS error)

When make or perl was executed, an error was reported. Check the debug.out and debug.err files for more information.

CPAN modules file error: $!

In Perl::Dist::WiX->install_module, we expected a file to be created to verify that CPAN could find the module to be installed. When install_module tried to read the file, we got the error reported.

The script %s does not exist

Install_launcher could not find a script at this location when creating a shortcut.

PATH directory $dir does not exist

The directory being added to the PATH does not exist.

Directory $path does not exist

We tried to find the path to get patches from with Perl::Dist::WiX->patch_include_path, but the path to get the patches from does not exist.

Copy error: %s or Move error: %s

There was an error copying or moving a file.

Error in archive extraction

The archive that was downloaded was corrupt when an extraction attempt was made.

Didn't recognize archive type for $archive

Perl::Dist::WiX can only install files with a .zip or .tar.gz extension.

%s has not been installed

The install_* routine that adds this particular package needed to be called before this one, but it wasn't.

pexports failed to generate .def file or pexports failed to generate .a file

pexports or dlltool had an error and was not able to generate the file required.

Failed to make_path for %s or Failed to remake_path for %s

The directory did not exist once made or remade.

Could not write out $filename_in: File already exists.

The application name (as defined by the app_name parameter) conflicts with one of the other fragments somehow. Please choose a different application name.

Error caught by Perl::Dist::WiX from other module:

These exceptions are members of the PDWiX::Caught class.

The specific problem returned from the other module is reported on the next line.

Unknown delegation error occured

This error occurs after "Completed install_c_libraries in %i seconds" if trace => 0 or "Pregenerating toolchain..." if trace => 1 or greater.

Failed to generate toolchain distributions

Perl::Dist::Util::Toolchain was not able to find out which modules need upgraded in the CPAN toolchain.

Template error

There was a problem creating or processing the main .wxs template.

Could not find distribution directory for Perl::Dist::WiX

File::ShareDir could not find the directory that Perl::Dist::WiX uses to store its required data ($Config{sitelib}\auto\share\Perl-Dist-WiX)

As other errors are noticed, they will be listed here.

OIO::Args error: Missing mandatory initializer '%s' for class '%s'

This is the Object::InsideOut equivalent of a PDWiX::Parameter error.


Curtis Jewell <>


Perl::Dist, Perl::Dist::WiX,,


The license is the same as Perl::Dist::WiX. See that module for details.