area portals are a pain in the ass to get correct.
Think of areas between areaportals as an entirely separate map.
Any way an entity can escape needs to be thought about.
If you have a areaportal leak, then some WEIRD shit happens beware of them.
But yes you should post your log first.

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2560.0 -3072.0 560.0)
Leaf 0 contents: CONTENTS_SOLID
Leaf 1 contents:
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2152.0 -64.3)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2152.0 -182.4)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2152.0 686.1)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2096.0 -264.0)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2096.0 -136.0)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2096.0 408.0)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

FindPortalSide: Couldn't find a good match for which brush to assign to a portal near (-2048.0 -2096.0 1136.0)
Leaf 0 contents:
Leaf 1 contents: CONTENTS_SOLID
viscontents (node 0 contents ^ node 1 contents): CONTENTS_SOLID
This means that none of the brushes in leaf 0 or 1 that touches the portal has CONTENTS_SOLID
Check for a huge brush enclosing the coordinates above that has contents CONTENTS_SOLID
Candidate brush IDs:

Go to map>load pointfile in the top bar. If you have a leak ( you do ) press Yes and a red line will be drawn that leads to the leak hole. It will probably be a confusing red line, but it will guide you anyway.

Completely seal the area portal flush with the walls (props can't seal) and then compile again. Check the point file again and if a menu comes up you are leak free! If not, repeat until you are.

We really need to just ask Valve to add a bit of code that forces VBSP to stop immediately and stop VVIS and VRAD from starting if it encounters a leak. Something like 90% of the problems people report are because of them, and literally the only time you want the map to continue compiling in spite of one is to show off what happens if there's a leak — something you'll never need again if they add such a feature.

We really need to just ask Valve to add a bit of code that forces VBSP to stop immediately and stop VVIS and VRAD from starting if it encounters a leak. Something like 90% of the problems people report are because of them, and literally the only time you want the map to continue compiling in spite of one is to show off what happens if there's a leak — something you'll never need again if they add such a feature.

Click to expand...

VBCT has this feature, but I dont believe CompilePal has it (last time I used it, it didnt have it). @fubarFX , maybe in your next version of CompilePal you could add this? It would save many people lots of time.

VBCT has this feature, but I dont believe CompilePal has it (last time I used it, it didnt have it). @fubarFX , maybe in your next version of CompilePal you could add this? It would save many people lots of time.

-leaktest will only stop vbsp tho, compilepal is naive and will queue up anything and everything after it. I'm hoping that compilepal does a good enough job of highlighting errors that we don't really need this but I'll quickly implement something to get compilepal to stop compiling after a failed -leaktest. It's probably as simple as looking at vbsp's exit code.

-leaktest will only stop vbsp tho, compilepal is naive and will queue up anything and everything after it. I'm hoping that compilepal does a good enough job of highlighting errors that we don't really need this but I'll quickly implement something to get compilepal to stop compiling after a failed -leaktest. It's probably as simple as looking at vbsp's exit code.

Click to expand...

Might also want to make this feature enabled by default if it's not already. Again, no real reason why anyone, especially a new mapper, would ever need to force a leak.