The bug
While holding a barrier block in the offhand you will not see the particle effect in placed barrier blocks.
Code analysis
Code analysis by @unknown can be found in this comment.
Linked issues
is duplicated by
Attachments
Comments
Confirmed for 15w40b

Confirmed for 15w41a
Confirmed for 15w41b
Confirmed for 15w42a
Confirmed for 15w43a
Confirmed for 15w44a
Confirmed snapshot 15w45a
Confirmed for 15w46a
Confirmed for 15w47c
confirmed for 15w49a, 15w49b, and 15w50a. It affects the primary hand as well.
Confirmed for 15w51b. Affects offhand; does not affect main hand.
Strange enough, the bug happens also in the main hand. Well, at least for me.
@unknown turn particles on in the video settings
O.O
...I never existed... ...You saw nothing at all...
Confirmed for 16w02a.
Confirmed for 1.9-pre4

Please link to this comment in the description
The following is based on decompiled version of Minecraft 1.9 using MCP 9.24 beta. All method and class names are the names used in the decompiled version.
The reason why this is happening is because the net.minecraft.client.multiplayer.WorldClient.doVoidFogParticles(int, int, int)
method only tests if the player holds a barrier block in his mainhand.
public void doVoidFogParticles(int posX, int posY, int posZ)
{
int i = 32;
Random random = new Random();
// Replaced this
//ItemStack itemstack = this.mc.thePlayer.getHeldItemMainhand();
//boolean flag = this.mc.playerController.getCurrentGameType() == WorldSettings.GameType.CREATIVE && itemstack != null && Block.getBlockFromItem(itemstack.getItem()) == Blocks.barrier;
ItemStack itemStackMainhand = this.mc.thePlayer.getHeldItemMainhand();
ItemStack itemStackOffhand = this.mc.thePlayer.getHeldItemOffhand();
boolean flag = this.mc.playerController.getCurrentGameType() == WorldSettings.GameType.CREATIVE && (
(itemStackMainhand != null && Block.getBlockFromItem(itemStackMainhand.getItem()) == Blocks.barrier) ||
(itemStackOffhand != null && Block.getBlockFromItem(itemStackOffhand.getItem()) == Blocks.barrier));
BlockPos.MutableBlockPos blockpos$mutableblockpos = new BlockPos.MutableBlockPos();
for (int j = 0; j < 667; ++j)
{
this.func_184153_a(posX, posY, posZ, 16, random, flag, blockpos$mutableblockpos);
this.func_184153_a(posX, posY, posZ, 32, random, flag, blockpos$mutableblockpos);
}
}
Confirmed for 1.9.1-pre3.
Confirmed for 1.9.3-pre3.
Conirmed for 1.9.4-Pre4
@unknown there's no such thing as 1.9.3-pre4 (yet).
Confirmed for 1.9.4.
Confirmed for 16w20a.
Confirmed for 16w21a.
Confirmed for 16w21b.
Confirmed for 1.10-pre1.
Confirmed for 1.10-pre2.
Confirmed for 1.10.
Confirmed for 1.10.1.
Confirmed for every version up to 1.12-pre6
Can confirm for MC 1.12.1.

Confirmed to 18w14b

Still in 18w19b
Confirmed for 18w21b.
Attached screenshot for 1.13-pre1
EDIT: Please change title to "Barrier particle not visible when held"
Confirmed for 1.13-pre7
Confirmed for 1.13-pre8
Confirmed for 1.13
Confirmed for 18w30b
Confirmed for 18w31a
This persists in 19w05a as well as 1.13.2
Confirmed for 1.14.3
Confirmed