const existing = this._subscriptions.get(resource);
if (existing) {
// Failed subscriptions should not poison the resource forever. Evict
// the errored entry so this acquire performs a fresh subscribe.
this._subscriptions.delete(resource);
this._disposeSubscriptionEntry(resource, existing);
existing.refCount++;
return this._acquireReference<T>(resource, existing, owner);
}
// Create new subscription based on caller-specified kind