Your server has one or more RPC's, and doing a shutdown implies a Cancel on each RPC. This cancel results in all of the outstanding tags to become available (i.e. Next returns with the "tag" set) on the completion queue, but with the "ok" variable set to false. This indicates that this tag can no longer be returned by subsequent Next calls, and the operation associated with this tag was cancelled. This is the ideal moment to release resources associated with this tag.
Only after all of the tags that were still in use, have been returned by the Next calls, Next will start to return false. In that case, neither "tag" nor "ok" are set by grpc.
So there is a clear distinction between the purpose of "ok" and the bool that gets returned by Next.
Koen