This error appears if the rule is applied on the Ad set level whereas the checked ad set belongs to a CBO campaign (aka Advantage campaign budget), where the budget is defined on the Campaign level. In other words, the rule is trying to change the budget on the ad set level for the item ad set that has a campaign level budget:
To avoid such an error, please make sure that the rule is not checking ad set that belong to CBO campaigns:
If you have a special tag in the name of your CBO campaigns to differentiate them from ABO campaigns, you can add one more filter to your scope section - Campaign name doesn’t contain “tag”, where tag is some name marker used to differentiate ABOs and CBOs. This way all the CBO campaigns will be excluded from the scope of this rule, therefore it will only look at your ABO campaigns:
For CBO campaigns you can create a separate rule, apply it on the Campaign level, and add a filter - Campaign name contains “tag”. This way all the ABO campaigns will be excluded from the scope of this rule:
If you don’t yet have a tag in the name of your CBO campaigns, you can either add it or you can simply have two Budget change rules: One applied at the Campaign level, another one at the Ad set level, however, in this case, you will see the errors in the logs for the campaigns where the budget is defined on a different level than the level of the rule.
Note: This will also increase the number of API calls for your account.