I was working on a sheet of store descriptions for one of my wallpaper apps, one column per language. I dropped =AI() down a column, selected the cells, and clicked Generate and insert. The button stayed grey. The cells stayed empty.
Earlier that day I'd been hammering the same function in a different sheet, so I assumed I'd hit a cap. The help page does say to wait 24 hours once you reach a long-term limit. Fair enough, I thought, and closed the laptop.
The next morning I opened the same sheet and clicked the same button. Still grey.
It wasn't the limit. It was where the file lived. As an indie developer I keep my working files in Dropbox out of habit, and that sheet was opened through Dropbox too. Google's help page has one line about this: if you access Sheets through another cloud storage provider like Box, Dropbox or Egnyte, you can't generate content with the AI function. I'd read past it.
Look at how the file was opened before you decide to wait. That order cost me a day to learn.
Is the button dead, or is it working and leaving gaps?
"It won't generate" looks like three different things on screen, and each one points somewhere else. Decide which one you're looking at before you start changing settings.
The button won't depress at all. Suspect the limit, the file's location, or your plan.
The button works but some cells stay empty. That's the limit wearing a different face. You can select many cells at once, but only the first 350 cells containing AI functions get generated. Wait for that batch to finish, select the rest, and run it again.
You see "AI function not available." That isn't a limit at all — it's an eligibility message. Your plan, your admin settings, or your language setting is in the way.
The limit has two floors, and only the upper one takes 24 hours
The AI function has a short-term generation limit and a long-term one. The "wait 24 hours" advice applies to the long-term limit specifically.
That distinction mattered more than I expected. A short-term limit clears in minutes, but I collapsed both into "looks like a cap, I'll try tomorrow." Waiting badly doesn't just cost time — it delays the diagnosis.
The rule I use now is simple. If a few minutes fixes it, it was short-term. If it survives to the next morning, stop assuming it's a limit at all. When that button was still grey the second day, that was my cue to look elsewhere, and I missed it.
Sheets opened through Dropbox or Box can't generate, full stop
Google lists this under the AI function's limitations: you can't generate content with the AI function if you access Sheets with other cloud storage providers like Box, Dropbox or Egnyte with Google Drive. There's no workaround condition attached. On that path, the feature simply isn't offered.
What makes it hard to spot is that nothing looks different. You're in a normal Google Sheets window. The URL still starts with docs.google.com. If you use the same email address for both Google and Dropbox, moving between them feels seamless. But the file itself lives in someone else's storage, not in Drive.
That's exactly why I burned half a day on it. A familiar screen doesn't guarantee a familiar backend.
One formula tells you which problem you have
You can't diagnose this by clicking the AI button harder. Instead, drop an IMPORTRANGE into any empty cell in the same sheet:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit", "Sheet1!A1")IMPORTRANGE is also unsupported on third-party storage. So if the AI function is the only thing failing, look at limits and plans. If IMPORTRANGE fails alongside it, you've found your answer in about thirty seconds.
Plenty of other things are quietly missing on the same path:
| Feature | Sheet opened via Box, Dropbox or Egnyte |
|---|---|
| AI function generation | Not supported |
IMPORTRANGE | Not supported |
| Apps Script and the Docs/Sheets/Slides APIs | Not supported |
| Sheets data connectors and macros | Not supported |
| Protected ranges (restricting who can edit) | Not supported |
| Linked content from another Doc, Sheet or Slide | Not supported |
| Editing from the Android and iOS apps | Not supported |
| Google Forms and Google Sites | Not supported |
| Sharing, deletion and exports | Handled from the storage provider instead |
Had I looked at that list earlier, I'd have remembered giving up on an Apps Script for that same sheet a month before. These features don't fail one at a time — they fail as a set. Once you notice one, go looking for the others.
Moving the sheet into Drive, and what doesn't come along
The quickest fix is to move just the sheet that needs generation into Drive. It won't arrive perfectly intact, though.
There are two routes. Create a fresh spreadsheet in Drive, select everything in the original, and paste: values, formulas and formatting come across, but protected ranges and scripts don't. Or export to .xlsx, upload it to Drive, and convert it to Sheets format — for large sheets I've found this more reliable.
Three things usually need fixing by hand afterwards: sharing settings, formulas that reference other files, and conditional formatting ranges. Add the AI column back once the move is done and it works.
One more thing worth knowing before you migrate: the AI function has no undo. If you dislike a result, you don't roll it back — you click "Refresh and insert" and regenerate. Running a bulk generation right after a move means a lot of irreversible overwrites, so start with a single column. I wrote about treating Sheets' AI suggestions with a little healthy suspicion in Using Gemini in Sheets' One-Click Formula Fix Without Trusting It Blindly.
When it's neither the location nor the limit
If you're still stuck, what remains is eligibility and the formula itself.
For "AI function not available," check three things. Whether you're on a Google Workspace or Google AI plan that includes AI functions. Whether an admin has turned the feature off. And — the one people miss — your account's language setting, which can hide it too. The column-filling "Fill with Gemini" entry points go further still: they're currently available only in the US, in English.
It's also possible the feature simply hasn't rolled out to you yet. I've written up how I separate "still waiting" from "actually broken" in When a New Gemini Feature Hasn't Reached Your Workspace, Here's How to Tell Waiting From Broken.
On the formula side, I've tripped over two things. First, AI functions can't be nested inside other functions:
# Doesn't work — AI functions can't be embedded
=IF(AI("Is this message negative?", A2)="negative", "needs reply", "")
# Split it across two columns instead
# B2: let the AI function do only the classification
=AI("Reply with exactly 'negative' if this message is negative, otherwise 'neutral'.", A2)
# C2: handle the branching with an ordinary formula
=IF(B2="negative", "needs reply", "")Don't cram judgement and branching into one cell. Give the model its own column, then process that column with plain formulas. My sheets got easier to read once I worked this way.
Second, if you've written a custom Apps Script function named =AI(), Sheets remaps it to the built-in AI function — so your own function stops working. Pick a different name and keep it.
The first thing to try tomorrow
If Generate and insert won't depress, put an IMPORTRANGE in an empty cell before you write off the day and wait. If that gets refused too, this isn't about how many times you've run the function — it's your sheet telling you it lives outside Drive.
I still keep most of my work in Dropbox. The sheets that need AI functions are the exception, and they sit in Drive on their own. Moving one file beats rebuilding a whole workflow — that line has held up for me so far.