I started upgrading an ancillary, and then put it out of my mind and went about other business. Eventually, it gradually dawned on me that it seemed like the upgrade should have completed already, but I hadn't seen a message for it. So I looked at the building again, and it was at 97% completion, with no remaining resources necessary. I figured it was just about done.
But it still didn't finish. So eventually I went back and checked again; still 97%, no necessary resources. Periodically waited a bit and then checked the building again; several more times, always 97%, no necessary resources.
But then something weird happened:The next time I checked the building, it was 97% with one stone needed. I thought maybe I had been misremembering the "no resources needed" thing. But anyway, I now actively watched the building (as opposed to checking in on it every so often). What I found surprised me:
Somebody eventually delivered a rock. The building went to 97% with no resources remaining. Then somebody came and took away a rock. 97% with one rock needed.
This pattern repeated several times. Someone brings a rock, someone else takes it away, over and over.
Then it occurred to me that I had turned on "don't store rocks in this building" for it (the stronger version - i.e. "remove any that are already there"). I assume that's what's causing this behavior. Unfortunately, I can't change that setting - when you're upgrading a building, the storage options are unavailable to you. So it seems like I have this ancillary that is perpetually being built. Maybe eventually a builder will sneak in there before somebody takes the rock away, but who knows.