code: func (c *Client) UnlockFileById(id string, force bool) error {
  	unlockRes, _, err := c.client.Unlock(c.RemoteRef, c.Remote, id, force)
  	if err != nil {
  		return errors.Wrap(err, "api")
  	}
  
  	if len(unlockRes.Message) > 0 {
  		if len(unlockRes.RequestID) > 0 {
  			tracerx.Printf("Server Request ID: %s", unlockRes.RequestID)
  		}
  		return fmt.Errorf("Server unable to unlock: %s", unlockRes.Message)
  	}
  
  	if err := c.cache.RemoveById(id); err != nil {
  		return fmt.Errorf("Error caching unlock information: %v", err)
  	}
  
  	if unlockRes.Lock != nil {
  		abs, err := getAbsolutePath(unlockRes.Lock.Path)
  		if err != nil {
  			return errors.Wrap(err, "make lockpath absolute")
  		}
  
  		// Make non-writeable if required
  		if c.SetLockableFilesReadOnly && c.IsFileLockable(unlockRes.Lock.Path) {
  			return tools.SetFileWriteFlag(abs, false)
  		}
  	}
  
  	return nil
  }
docs: // UnlockFileById attempts to unlock a lock with a given id on the current remote
  // Force causes the file to be unlocked from other users as well