Source:
<code>void checkRamResourcesAvailability( String accountId, String namespace, String workspaceId, WorkspaceConfig config, @Nullable String envName) throws NotFoundException, ServerException, ConflictException { if (config.getEnvironments().isEmpty()) { return; } if (SidecarToolingWorkspaceUtil.isSidecarBasedWorkspace(config.getAttributes())) { LOG.warn( <START> "Sidecar memory of plugins of workspace `{}` is not taken in account. " <END> + "Set memory resources limits may work incorrectly", workspaceId); } final Environment environment = config.getEnvironments().get(firstNonNull(envName, config.getDefaultEnv())); final ResourceImpl ramToUse = new ResourceImpl( RamResourceType.ID, environmentRamCalculator.calculate(environment), RamResourceType.UNIT); try { resourceManager.checkResourcesAvailability(accountId, singletonList(ramToUse)); } catch (NoEnoughResourcesException e) { final Resource requiredRam = e.getRequiredResources().get(0); final Resource availableRam = getResourceOrDefault( e.getAvailableResources(), RamResourceType.ID, 0, RamResourceType.UNIT); final Resource usedRam = getResourceOrDefault( resourceManager.getUsedResources(accountId), RamResourceType.ID, 0, RamResourceType.UNIT); throw new LimitExceededException( format( "Workspace %s/%s needs %s to start. Your account has %s available and %s in use. " + "The workspace can't be start. Stop other workspaces or grant more resources.", namespace, config.getName(), printResourceInfo(requiredRam), printResourceInfo(availableRam), printResourceInfo(usedRam))); } }</code><technical_language>about: "The memory requirements for plugin sidecars of workspace account. memory limits applied correctly."</technical_language>

Target:
void checkRamResourcesAvailability( String accountId, String namespace, String workspaceId, WorkspaceConfig config, @Nullable String envName) throws NotFoundException, ServerException, ConflictException { if (config.getEnvironments().isEmpty()) { return; } if (SidecarToolingWorkspaceUtil.isSidecarBasedWorkspace(config.getAttributes())) { LOG.warn( "The memory requirements for the plugin sidecars of workspace `{}` are not taken" + " into account. The memory limits may not be applied correctly.", workspaceId); } final Environment environment = config.getEnvironments().get(firstNonNull(envName, config.getDefaultEnv())); final ResourceImpl ramToUse = new ResourceImpl( RamResourceType.ID, environmentRamCalculator.calculate(environment), RamResourceType.UNIT); try { resourceManager.checkResourcesAvailability(accountId, singletonList(ramToUse)); } catch (NoEnoughResourcesException e) { final Resource requiredRam = e.getRequiredResources().get(0); final Resource availableRam = getResourceOrDefault( e.getAvailableResources(), RamResourceType.ID, 0, RamResourceType.UNIT); final Resource usedRam = getResourceOrDefault( resourceManager.getUsedResources(accountId), RamResourceType.ID, 0, RamResourceType.UNIT); throw new LimitExceededException( format( "Workspace %s/%s needs %s to start. Your account has %s available and %s in use. " + "The workspace can't be start. Stop other workspaces or grant more resources.", namespace, config.getName(), printResourceInfo(requiredRam), printResourceInfo(availableRam), printResourceInfo(usedRam))); } }