An Azure service for ingesting, preparing, and transforming data at scale.
Hi @Roime Bin Puniran , Hope you are doing well.
Hi Roime,
Your diagnosis is right — 256 template input parameters is a hard ARM limit and ADF can't raise it. But you don't need to delete triggers. At 259 you only need to shed 3, and the supported way is to de-parameterize properties, not remove artifacts.
First, see what's actually consuming the count
Open ARMTemplateParametersForFactory.json in your adf_publish branch. Every parameter is named <entityName>_properties_..., so you can group by entity and spot the heavy contributors immediately. Triggers and linked services are usually the bulk — by default every secure string (Key Vault secrets, connection strings, keys, tokens) is parameterized automatically.
The fix: custom ARM parameter configuration
In ADF: Manage hub → ARM template (Source control section) → ARM parameter configuration → the edit icon on Edit parameter configuration.
This creates arm-template-parameters-definition.json in the root folder of your Git branch — the filename must be exact. On publish from the collaboration branch, ADF reads it to decide which properties get parameterized; if it's absent, the default template is used.
Two things to know before you start:
- It's Git mode only — the option is disabled in Live mode / Data Factory mode. If you're not Git-connected, connect first.
- Test it in a private branch. On export, ADF reads the file from the branch you're on, not the collaboration branch. So edit it in a private branch, hit Export ARM Template, count the parameters, iterate, then merge. No risk to your collaboration branch.
Start by removing what doesn't vary between environments — trigger frequency/interval/startTime, dataset folderPath/fileName, anything that can safely keep its default. Three parameters will go quickly. Note this doesn't raise the 256 limit; it just reduces how many properties get parameterized.
If you need more headroom later
- Collapse related parameters into an object. ARM lets you combine several values into a single object parameter — 5 strings become 1 parameter.
- Use global parameters for values that are identical across every pipeline instead of repeating pipeline parameters.
- Split the factory if it keeps growing — last resort, since it complicates operations.
One warning about the triggers you've already deleted
When you delete a parameterized trigger, its parameters disappear from the generated ARM template. If your release pipeline still overrides them, the next deployment fails with The template parameters '...' in the parameters file are not valid; they are not present in the original template. Clean the stale overrides out of your deployment task now, before your next run.
Docs
- Use custom parameters with the Resource Manager template — https://learn.microsoft.com/azure/data-factory/continuous-integration-delivery-resource-manager-custom-parameters
- Troubleshoot CI-CD, Azure DevOps, and GitHub issues (the deleted-trigger override error) — https://learn.microsoft.com/azure/data-factory/ci-cd-github-troubleshoot-guide
- ARM template best practices — template limits and objects-as-parameters — https://learn.microsoft.com/azure/azure-resource-manager/templates/best-practices
If you paste the entity-name prefixes of your top 20 parameters, I can suggest exactly which paths to drop from the definition file.
Kind Regards,
Microsoft Support Team.