As the name suggests, using commands such as /setblock and /fill to place a Stained Glass block in a beacon's beam does not instantly update it. Instead, much like it did when colored beams was first implemented, it waits until the beacon "resets", so to speak, and refreshes the effects applied to players.
However, with further testing, this only happens when the oldBlockHandling is set to default or "Replace". Using "Destroy" does update the beam appropriately, but it would be nice to instantly replace a color with another without a destroying sound/animation.
Edit: To make this a little clearer, the colors don't update if you replace an already existing color in the beam. Switching from glass or air to a stained glass does instantly update the beam as it should, but using setblock or fill to change, say, a light blue glass into lime green glass (as depicted in the Screenshot) doesn't update as it should until the beacon finishes it's current effect cycle.
Edit #2: qmagnet did some more testing and found out this:
• The beam colour changes immediately if the stained glass being swapped is directly 1 block higher than the beacon.
• The beam colour changes immediately if the stained glass is changed from air to stained glass.
But if there is at least one block of air between the beacon and the stained glass, replacing that stained glass will have a delay
And he also submitted a screenshot depicting this.
Linked issues
Attachments
Comments


I tested this using /setblock with no replace method and /setblock with replace option. Instant colour change with both commands typed and command blocks.
@qmagnet I'm sorry, I was unaware of the fact that using setblock over a clean beam did in fact update it instantly. I have edited my description so that it would make a little more sense.

I did some more testing. You should update your bug title and description with this info.
The beam colour changes immediately if the stained glass being swapped is directly 1 block higher than the beacon.
The beam colour changes immediately if the stained glass is changed from air to stained glass.
But if there is at least one block of air between the beacon and the stained glass, replacing that stained glass will have a delay.

Actually I bet this is the same bug or at least related. MC-66206
Actually no, because that is happening with a block update - destroys it.

Tested in 1.8.2-pre1
Found the update is still delayed based on my previous screenshot.
Confirmed.

Removing or placing a block forces the engine to recalculate whether or not a block is open to the sky, and recalculate the sky light level. Something in the process updates the beacon, causing it to re-evaluate the color of the beam. Replacing a block with setblock apparently doesn't trigger all of the same recalculations, even though it does immediately update skylight. Try replacing the glass with stone, for instance: the beam won't immediately be disabled.
If the glass is in the block immediately above the beacon, replacing it triggers a block update, which causes the beacon to update the beam immediately.
There may be a (significant) performance tradeoff (MC-32933) at stake here.
Confirmed in 1.8.3.
Confirmed for 15w41b

Is this still an issue in the most recent versions (i.e. 1.10.2, or 16w42a) of Minecraft?

Can't reproduce in 1.11
Tested and found it does update instantly for me. 14w33a.
Cannot confirm this bug.