Change:
Version: 1.79.0-insider Commit: Date: 2023-05-16T05:23:57.470Z Electron: 22.5.2 Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Linux x64 5.14.0-1048-oem open a wsl or a dev containers window fails with a notification: Could not fetch remote environment. this.c.makeConnection is not a function
I see the same error, yesterdays version worked fine.
and it is fixed: it seems they rolled back to yesterdays version Version: 1.79.0-insider (user setup) Commit: Date: 2023-05-15T05:20:50.327Z Electron: 22.5.2 Chromium: 108.0.5359.215 16.17.1 V8: 10.8.168.25-electron.0 OS: Windows_NT x64 10.0.
ERR this.factory.makeConnection is not a function: TypeError: this.factory.makeConnection is not a function at ExtHostManagedSockets.$openRemoteSocket (c:Usersmartinaeworkspacesvscodeoutvsworkbenchapicommon) at RPCProtocol.doInvokeHandler (c:Usersmartinaeworkspacesvscodeoutvsworkbenchservicesextensionscommon) at RPCProtocol.invokeHandler (c:Usersmartinaeworkspacesvscodeoutvsworkbenchservicesextensionscommon) at RPCProtocol.receiveRequest (c:Usersmartinaeworkspacesvscodeoutvsworkbenchservicesextensionscommon) at RPCProtocol.receiveOneMessage (c:Usersmartinaeworkspacesvscodeoutvsworkbenchservicesextensionscommon) at c:Usersmartinaeworkspacesvscodeoutvsworkbenchservicesextensionscommon at (c:Usersmartinaeworkspacesvscodeoutvsbasecommon) at PrivateEventDeliveryQueue.deliver (c:Usersmartinaeworkspacesvscodeoutvsbasecommon) at (c:Usersmartinaeworkspacesvscodeoutvsbasecommon) at (c:Usersmartinaeworkspacesvscodeoutvsbasepartsipccommon) at c:Usersmartinaeworkspacesvscodeoutvsworkbenchapinode at (c:Usersmartinaeworkspacesvscodeoutvsbasecommon) at PrivateEventDeliveryQueue.deliver (c:Usersmartinaeworkspacesvscodeoutvsbasecommon) at (c:Usersmartinaeworkspacesvscodeoutvsbasecommon) at (c:Usersmartinaeworkspacesvscodeoutvsbasepartsipccommon) at MessagePortMain.<anonymous(c:Usersmartinaeworkspacesvscodeoutvsworkbenchapinode) at (node:events:513:28) at (node:electron/js2c/utilityinit:2:367)
for me now the forwarded ports on remote hosts are broken:

Discussion:
import { ExtensionIdentifier, ExtensionIdentifierMap, ExtensionIdentifierSet, IExtensionDescription, IRelaxedExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { VSBuffer } from 'vs/base/common/buffer'; import { ExtensionGlobalMemento, ExtensionMemento } from 'vs/workbench/api/common/extHostMemento'; <del> import { RemoteAuthorityResolverError, ExtensionKind, ExtensionMode, ExtensionRuntime, ResolvedAuthority as ExtHostResolvedAuthority } from 'vs/workbench/api/common/extHostTypes'; </del> <ins> import { RemoteAuthorityResolverError, ExtensionKind, ExtensionMode, ExtensionRuntime, ManagedResolvedAuthority as ExtHostManagedResolvedAuthority } from 'vs/workbench/api/common/extHostTypes'; </ins> import { ResolvedAuthority, ResolvedOptions, RemoteAuthorityResolverErrorCode, IRemoteConnectionData, getRemoteAuthorityPrefix, TunnelInformation, ManagedRemoteConnection, WebSocketRemoteConnection } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { IInstantiationService, createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService';

authenticationSession: result.authenticationSessionForInitializingExtensions ? { id: result.authenticationSessionForInitializingExtensions.id, providerId: result.authenticationSessionForInitializingExtensions.providerId } : undefined }; <del> logInfo(`returned ${result instanceof ExtHostResolvedAuthority ? `${result.host}:${result.port}` : 'managed authority'}`); </del> <ins> // extension are not required to return an instance of ResolvedAuthority or ManagedResolvedAuthority, so don't use `instanceof` logInfo(`returned ${ExtHostManagedResolvedAuthority.isManagedResolvedAuthority(result) ? 'managed authority' : `${result.host}:${result.port}`}`); </ins> let authority: ResolvedAuthority; <del> if (result instanceof ExtHostResolvedAuthority) { authority = { authority: remoteAuthority, connectTo: new WebSocketRemoteConnection(result.host, result.port), connectionToken: result.connectionToken }; } else { </del> <ins> if (ExtHostManagedResolvedAuthority.isManagedResolvedAuthority(result)) { </ins> // The socket factory is identified by the `resolveAttempt`, since that is a number which // always increments and is unique over all resolve() calls in a workbench session. const socketFactoryId = resolveAttempt;

connectTo: new ManagedRemoteConnection(socketFactoryId), connectionToken: result.connectionToken }; <ins> } else { authority = { authority: remoteAuthority, connectTo: new WebSocketRemoteConnection(result.host, result.port), connectionToken: result.connectionToken }; </ins> } return {

export class ResolvedAuthority { <ins> public static isResolvedAuthority(resolvedAuthority: any): resolvedAuthority is ResolvedAuthority { return resolvedAuthority && typeof resolvedAuthority === 'object' && typeof resolvedAuthority.host === 'string' && typeof resolvedAuthority.port === 'number' && (resolvedAuthority.connectionToken === undefined || typeof resolvedAuthority.connectionToken === 'string'); } </ins> readonly host: string; readonly port: number; readonly connectionToken: string | undefined;

} } export class ManagedResolvedAuthority { <ins> public static isManagedResolvedAuthority(resolvedAuthority: any): resolvedAuthority is ManagedResolvedAuthority { return resolvedAuthority && typeof resolvedAuthority === 'object' && typeof resolvedAuthority.makeConnection === 'function' && (resolvedAuthority.connectionToken === undefined || typeof resolvedAuthority.connectionToken === 'string'); } </ins> constructor(public readonly makeConnection: () => Thenable<vscode.ManagedMessagePassing>, public readonly connectionToken?: string) { if (typeof connectionToken !== 'undefined') { validateConnectionToken(connectionToken);