Project Process displaying TypeError : Deployments Blocked

Hi Team,

We are getting below exception when trying to access Process setting for some of our Octopus Projects . The Process screen is coming for few seconds and than the exception getting displayed…

Octopus v4.1.9

TypeError: Cannot read property ‘Id’ of undefined

render (/app/components/Actions/email/emailAction.tsx:50:111)
render (/app/components/Actions/TargetList.tsx:14:38)
render (/app/components/Actions/TargetList.tsx:13:38)
Lf (/node_modules/react-dom/cjs/react-dom.production.min.js:147:337)
sf:a:{e=b.type;c=b.pendingProps;d=b.memoizedProps;if(nf())null===c&& (/node_modules/react-dom/cjs/react-dom.production.min.js:150:232)
e (/node_modules/react-dom/cjs/react-dom.production.min.js:182:349)
g (/node_modules/react-dom/cjs/react-dom.production.min.js:183:347)
p (/|

I will be attaching API request and response to the ticket for reference.
Thanks in advance.

JyotsnaOctopusProcessAPIResponse.txt (333 Bytes)

Hi Jyotsna,

Thanks for getting in touch! I’m very sorry to hear you’re hitting this unexpected issue on some of your projects. We’ve seen (and fixed) some of these kind of client side errors occurring in the web portal since 4.1.9 (you can reference the release notes here), so if possible, the first thing I would suggest is to upgrade your Octopus instance.

If you’re still hitting this issue, we’d like to have a look at these projects’ configurations to see if we can narrow down what’s causing this and attempt to reproduce it. In this case, would you be willing to supply a project export from a couple affected projects? You can grab this with the Octopus.Migrator’s partial-export command as shown in the following documentation.

I hope that helps, and I look forward to hearing back!

Best regards,

Kenny

Hi Kenny,

Attaching the partial export for your reference.architect.zip (124.6 KB)

Upgrading the instance at this point in time is not possible .
However if you can provide similar quick fix it wiill be really helpful : Project Process displaying error after Upgrade to Octopus v2018.9.5

Thanks
Jyotsna

06.eps (407 Bytes)

Hi Kenny,

The below changes has been done recently for project users and could be possible cause for this error message.

From the teams settings > project team has been deleted .
The project team was referenced in Deployment Process Step for sending email notification .
When tried to recreated the project team new id is getting assigned to it like : /app#/configuration/teams/Teams-661 but the deleted id was something else.

Please guide how to recreate the project team with same id or any other way to fix this problem .

Thanks
Jyotsna

HI Jyotsna,

Thanks for keeping in touch and providing that extra bit of context. It looks like you’re hitting this specific bug.

The fix for it was shipped as part of 4.1.10, so just one patch version ahead of your current version. If you’re able to make this little jump for the time being before planning a larger upgrade, that would be the easiest way to go about this. You can get 4.1.10 here: https://octopus.com/downloads/4.1.10

To fix this in your current version, you would need to do so via the API. I dug into that thread you linked to, and Nick provided via email a Linqpad script to update the package ID on an IIS step to address that different (but similar) issue. This would need to be changed to address the issue you’re facing, so the following script is just a sample. If a specific script is required, let me know. :slight_smile:

{
var serverUri = "https://my.octopus.installation";
var apiKey = "API-YOUR_API_KEY";
var deploymentProcessId = "deploymentprocess-Projects-ID";
var replacementPackageName = "";

var octopusServer = new Octopus.Client.OctopusServerEndpoint(serverUri, apiKey);
var repo = new Octopus.Client.OctopusRepository(octopusServer);

var process = repo.DeploymentProcesses.Get(deploymentProcessId);
PropertyValueResource existingVal;

foreach (var s in process.Steps)
{
foreach (var a in s.Actions)
{
if (a.ActionType == "Octopus.IIS")
{
if (!a.Properties.TryGetValue("Octopus.Action.Package.PackageId", out existingVal))
{
a.Properties["Octopus.Action.Package.PackageId"] = new PropertyValueResource(replacementPackageName);
Console.WriteLine($"inserted packagedId on {s.Name} because it was missing");
}
}
}
}

repo.DeploymentProcesses.Modify(process);
}

Let me know how you go!

Best regards,

Kenny