aspnetboilerplate/aspnetboilerplate · error · AbpException

There is no feature with name

Error message

There is no feature with name: {name}

What it means

Thrown by FeatureManager.Get when GetOrNull(name) returns null — i.e., no Feature with that name is registered in the feature definition dictionary. Unlike the TryGet-style API, Get is the strict accessor and throws AbpException for unknown names.

Solutions

  1. Fix the feature name string to match the registered definition exactly.
  2. Register the feature in a FeatureProvider added to Configuration.Features.Providers.
  3. Use GetOrNull or IsEnabled instead of Get when absence is an expected case.
  4. Migrate persisted feature settings that reference renamed/removed features.

Example fix

// before
var feature = featureManager.Get("ExportData"); // not registered

// after
var feature = featureManager.GetOrNull("MyApp.ExportData");
if (feature == null) { /* handle missing definition */ }
Defensive patterns

Strategy: type-guard

Validate before calling

var feature = featureManager.GetOrNull(name);
if (feature == null)
{
    Logger.Warn($"Unknown feature: {name}");
    return false;
}

Type guard

bool FeatureExists(FeatureManager fm, string name) => fm.GetOrNull(name) != null;

Try / catch

try { return featureManager.Get(name); }
catch (AbpException ex) when (ex.Message.StartsWith("There is no feature with name"))
{
    Logger.Warn($"Feature not registered: {name}");
    return null;
}

Prevention

When it happens

Trigger: Calling FeatureManager.Get("SomeFeature") (directly or via feature value APIs that resolve definitions) with a name never registered by any FeatureProvider, or after the provider defining it was removed.

Common situations: Typo in feature name string; feature defined in a module not loaded in this environment; renaming a feature in code while old persisted feature values/settings still reference the old name; tests missing module registration.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


AI-assisted analysis of aspnetboilerplate/aspnetboilerplate@2323c13a15 (2026-09-08). Data as JSON: /api/errors/00066bd3ec23433b. Report an issue: GitHub.

Appendix: source

Thrown at src/Abp/Application/Features/FeatureManager.cs:52

                using (var provider = CreateProvider(providerType))
                {
                    provider.Object.SetFeatures(this);
                }
            }

            Features.AddAllFeatures();
        }

        /// <summary>
        /// Gets a feature by its given name
        /// </summary>
        /// <param name="name">Name of the feature</param>
        public Feature Get(string name)
        {
            var feature = GetOrNull(name);
            if (feature == null)
            {
                throw new AbpException("There is no feature with name: " + name);
            }

            return feature;
        }

        /// <summary>
        /// Gets all the features
        /// </summary>
        public IReadOnlyList<Feature> GetAll()
        {
            return Features.Values.ToImmutableList();
        }

        private IDisposableDependencyObjectWrapper<FeatureProvider> CreateProvider(Type providerType)
        {
            return _iocManager.ResolveAsDisposable<FeatureProvider>(providerType);
        }
    }

View on GitHub (pinned to 2323c13a15)