code: func (c *Cache) maybeFetchItem(ctx context.Context, key string) *itemWithExp {
  	g := caching.GlobalCache(ctx, c.GlobalNamespace)
  	if g == nil {
  		return nil
  	}
  
  	blob, err := g.Get(ctx, key)
  	if err != nil {
  		if err != caching.ErrCacheMiss {
  			logging.WithError(err).Errorf(ctx, "Failed to read item %q from the global cache", key)
  		}
  		return nil
  	}
  
  	item, err := c.deserializeItem(blob)
  	if err != nil {
  		logging.WithError(err).Errorf(ctx, "Failed to deserialize item %q", key)
  		return nil
  	}
  	return item
  }
docs: // maybeFetchItem attempts to fetch the item from the global cache.
  //
  // If the global cache is not available or the cached item there is broken
  // returns nil. Logs errors inside.