Question regarding mutateAccountBudgetProposal returning CANNOT_UPDATE_OLD_BUDGET

43 views
Skip to first unread message

static bin

unread,
Nov 17, 2025, 7:03:02 PMNov 17
to (Deprecated) Google Ads API and AdWords API Forum

Dear Google Ads Support Team,

I am using mutateAccountBudgetProposal to update account budgets. For some accounts, the update works successfully, but for others I receive the following error:

CANNOT_UPDATE_OLD_BUDGET – “The budget has been expired for some time and cannot be edited.”

Could you please help explain the reason for this issue? Below is the code I am using for the request:

$proposal = new AccountBudgetProposal([
    'proposal_type'    => AccountBudgetProposalType::UPDATE,
    'account_budget'   => $resourceName,
    'proposed_name'    => $accountBudget->getName(),
    'proposed_spending_limit_micros' => $newBudget,
]);
$operation = new AccountBudgetProposalOperation();
$operation->setCreate($proposal);

$operation->setUpdateMask(
    FieldMasks::allSetFieldsOf($proposal)
);
$request = new MutateAccountBudgetProposalRequest([
    'customer_id' => $customerId,
    'operation' => $operation,
]);
$response = $accountBudgetProposalServiceClient->mutateAccountBudgetProposal($request);

googlea15e07.png

Thank you for your assistance.
Best regards,

Google Ads API Forum Advisor

unread,
Nov 18, 2025, 2:02:42 AMNov 18
to stati...@gmail.com, adwor...@googlegroups.com
Hi,

Thank you for reaching out to the Google Ads API support team.

Based on the provided information, I understand that you are encountering an “AccountBudgetProposalError.CANNOT_UPDATE_OLD_BUDGET” error. The CANNOT_UPDATE_OLD_BUDGET error indicates that expired budgets cannot be edited after a sufficient amount of time has passed.

Upon checking the account budget for the ID 6742730389, I observed that it had ended on "2022-06-24 10:58:04".

You can use the following query to retrieve the account_budget.approved_end_date_time:

SELECT account_budget.id, account_budget.approved_start_date_time, account_budget.proposed_start_date_time, account_budget.approved_end_date_time, account_budget.approved_end_time_type, account_budget.pending_proposal.creation_date_time, account_budget.pending_proposal.end_date_time, account_budget.pending_proposal.end_time_type, account_budget.proposed_end_date_time, account_budget.proposed_end_time_type FROM account_budget

I hope it helps!

Thanks,
 
Google Logo Google Ads API Team

Feedback
How was our support today?

rating1    rating2    rating3    rating4    rating5
[2025-11-18 07:01:59Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01vTk7n:ref" (ADR-00339591)



static bin

unread,
Nov 18, 2025, 7:20:14 PMNov 18
to (Deprecated) Google Ads API and AdWords API Forum

First of all, thank you for your technical support. However, the budget for this account is shown as active in the Google Ads interface, and the end date is set to no fixed end date.

Is there any configuration I need to modify in the Google Ads interface in order to make the budget editable again via the API?

Google Ads API Forum Advisor

unread,
Nov 19, 2025, 12:49:37 AMNov 19
to stati...@gmail.com, adwor...@googlegroups.com
 

Hi,

 

Please note that there is no configuration required to be done in Google Ads interface to make this budget editable. I observed that  you had mentioned earlier that you were able to successfully update the account budgets for some accounts. As the account budget is active and the end date is not specified, you should be able to update the account budget in the same way. 

 

If you are still facing any issues or getting any error, please get back to us with the updated complete API logs (request and response with request-id and request header) generated at your end without redacting any information. If you are using a client library and haven't enabled the logging yet, I would request you to enable logging for the specific client library that you are using. You can refer to the guides Java, .Net, PHP, Python, Ruby or Perl to enable logging at your end. For REST interface requests, you can enable logging via the curl command by using the -i flag.

 

Thanks,
 
Google Logo Google Ads API Team

Feedback
How was our support today?

rating1    rating2    rating3    rating4    rating5

[2025-11-19 05:48:46Z GMT] This message is in relation to case "ref:!00D1U01174p.!500Ht01vTk7n:ref" (ADR-00339591)



Reply all
Reply to author
Forward
0 new messages