Skip to main content

Troubleshooting

Configuration not applied

@quik/core calls getConfig().load(defaults) at import time. Every other package's entrypoint does the same for its own defaults/ tree, so make sure module entrypoints are actually imported (not just their setup() called manually) before reading config values.

Required config key missing

requireConfig(...keys) throws a plain Error — not a QTranslatableError — listing any of the given dotted config keys that currently resolve to an empty string. This is commonly used at module setup time to fail fast when a required key (e.g. crypto.appKey) is not configured.

Feature not found / no instance registered

Accessing a feature that has never been registered (e.g. calling a feature getter before initializeDefaultFeatures() runs, or before a module that registers a custom implementation has loaded) throws FeatureDoesNotExistsError or NoFeatureInstanceError. Registering a feature name twice with initUpdatableFeature() in a context that disallows overwrite throws FeatureExistsError. Passing an invalid feature definition throws InvalidFeatureError; updating a feature that does not support runtime updates throws NoFeatureInstanceUpdateError.

Module not found

Internal module resolution helpers throw ModuleNotFoundError when a named module cannot be located, and NoFoldersDefinedForModuleError when a module has no folders configured for a lookup that requires them.

Common Errors

@quik/core defines these typed errors but ships no locale file of its own — the message keys below resolve through whichever IQI18n implementation and locale bundles are loaded by the rest of your application:

  • quik.errors.module.not-found: thrown by ModuleNotFoundError when a referenced module cannot be resolved.
  • quik.errors.module.no-folders-defined: thrown by NoFoldersDefinedForModuleError when a module lookup expects folders that were never configured.
  • quik.errors.features.feature.does-not-exists: thrown by FeatureDoesNotExistsError when the requested feature name was never registered.
  • quik.errors.features.feature.exists: thrown by FeatureExistsError when a feature name is registered twice.
  • quik.errors.features.feature.invalid: thrown by InvalidFeatureError for an invalid feature definition.
  • quik.errors.features.feature.no-instance: thrown by NoFeatureInstanceError when no implementation instance is available for a feature.
  • quik.errors.features.feature.no-instance-update: thrown by NoFeatureInstanceUpdateError when a feature instance does not support runtime updates.