I figured it out! It turned out to be a SSL/TLS misconfiguration between my gateway and my server. 

Yes I do. I have all three extensions installed. My issue only seems to happen whenever I'm trying to go through my CSP gateway. If I connect directly to the server, then it works.

Yes I can.

Here is the log from when I connect to my CSP gateway (HTTPS):

5:  ^CacheTemp.ISC.Atelier("debug",20592) = 1
6:  ^CacheTemp.ISC.Atelier("debug",20592,1,0) = 1
7:  ^CacheTemp.ISC.Atelier("debug",20592,1,1) =

"Event:init|<init appid=""AtelierDebugger"" idekey=""Atelier"" session=""20592"" thread=""1"" parent=""Cache for Windows (x86-64) 2017.2.2 (Build 865_3_20793U) Thu Apr 15 2021 16:04:37 EDT"" language=""COS"" protocol_version=""1.0"" fileuri=""file://""> <engine version=""1.0"">%Atelier.XDebugAgent</engine> <company>InterSystems Corporation</company> <license>Copyright 2015 InterSystems Corporation</license> <url>http://www.intersystems.com</url> <copyright>Copyright 2015 InterSystems Corporation</copyright></init>"

Here is when I do it when I connect directly to the server through port 57772:

8:  ^CacheTemp.ISC.Atelier("debug",21036) = 1
9:  ^CacheTemp.ISC.Atelier("debug",21036,1,0) = 77
10:  ^CacheTemp.ISC.Atelier("debug",21036,1,1) = "Event:init|<init appid=""AtelierDebugger"" idekey=""Atelier"" session=""21036"" thread=""1"" parent=""Cache for Windows (x86-64) 2017.2.2 (Build 865_3_20793U) Thu Apr 15 2021 16:04:37 EDT"" language=""COS"" protocol_version=""1.0"" fileuri=""file://""> <engine version=""1.0"">%Atelier.XDebugAgent</engine> <company>InterSystems Corporation</company> <license>Copyright 2015 InterSystems Corporation</license> <url>http://www.intersystems.com</url> <copyright>Copyright 2015 InterSystems Corporation</copyright></init>"
11:  ^CacheTemp.ISC.Atelier("debug",21036,1,2) = "Received:feature_set -i 1 -n max_data -v 8192"
12:  ^CacheTemp.ISC.Atelier("debug",21036,1,3) = "Calling state feature_set"
13:  ^CacheTemp.ISC.Atelier("debug",21036,1,4) = "Event:feature_set|<response command='feature_set' feature='max_data' success='1' transaction_id='1'/>"
14:  ^CacheTemp.ISC.Atelier("debug",21036,1,5) = "Received:feature_set -i 2 -n max_children -v 32"
15:  ^CacheTemp.ISC.Atelier("debug",21036,1,6) = "Calling state feature_set"
16:  ^CacheTemp.ISC.Atelier("debug",21036,1,7) = "Event:feature_set|<response command='feature_set' feature='max_children' success='1' transaction_id='2'/>"
17:  ^CacheTemp.ISC.Atelier("debug",21036,1,8) = "Received:feature_set -i 3 -n max_depth -v 2"
18:  ^CacheTemp.ISC.Atelier("debug",21036,1,9) = "Calling state feature_set"
19:  ^CacheTemp.ISC.Atelier("debug",21036,1,10) = "Event:feature_set|<response command='feature_set' feature='max_depth' success='1' transaction_id='3'/>"
20:  ^CacheTemp.ISC.Atelier("debug",21036,1,11) = "Received:feature_set -i 4 -n notify_ok -v 1"
21:  ^CacheTemp.ISC.Atelier("debug",21036,1,12) = "Calling state feature_set"
22:  ^CacheTemp.ISC.Atelier("debug",21036,1,13) = "Event:feature_set|<response command='feature_set' feature='notify_ok' success='1' transaction_id='4'/>"
23:  ^CacheTemp.ISC.Atelier("debug",21036,1,14) = "Received:feature_set -i 5 -n debug_target -v_base64 VEFMOiMjY2xhc3MoQ05IU0EuUlBNUy5IZWxsb1dvcmxkKS5IZWxsbygp"
24:  ^CacheTemp.ISC.Atelier("debug",21036,1,15) = "Calling state feature_set"
25:  ^CacheTemp.ISC.Atelier("debug",21036,1,16) = "Launching: ##class(CNHSA.RPMS.HelloWorld).Hello()"
26:  ^CacheTemp.ISC.Atelier("debug",21036,1,17) = "PID 21004"
27:  ^CacheTemp.ISC.Atelier("debug",21036,1,18) = "Debug Device Name:|TCP|59094"
28:  ^CacheTemp.ISC.Atelier("debug",21036,1,19) = "Event:feature_set|<response command='feature_set' feature='debug_target' success='1' transaction_id='5'/>"
29:  ^CacheTemp.ISC.Atelier("debug",21036,1,20) = "Received:breakpoint_list -i 6"
30:  ^CacheTemp.ISC.Atelier("debug",21036,1,21) = "Calling state breakpoint_list"
31:  ^CacheTemp.ISC.Atelier("debug",21036,1,22) = "Event:breakpoint_list|<response command='breakpoint_list' transaction_id='6'></response>"
32:  ^CacheTemp.ISC.Atelier("debug",21036,1,23) = "Received:breakpoint_list -i 7"
33:  ^CacheTemp.ISC.Atelier("debug",21036,1,24) = "Calling state breakpoint_list"
34:  ^CacheTemp.ISC.Atelier("debug",21036,1,25) = "Event:breakpoint_list|<response command='breakpoint_list' transaction_id='7'></response>"
35:  ^CacheTemp.ISC.Atelier("debug",21036,1,26) = "Received:breakpoint_list -i 8"
36:  ^CacheTemp.ISC.Atelier("debug",21036,1,27) = "Calling state breakpoint_list"
37:  ^CacheTemp.ISC.Atelier("debug",21036,1,28) = "Event:breakpoint_list|<response command='breakpoint_list' transaction_id='8'></response>"
38:  ^CacheTemp.ISC.Atelier("debug",21036,1,29) = "Received:breakpoint_set -i 9 -t line -s enabled -f dbgp://|TAL|CNHSA.RPMS.HelloWorld.cls -m Hello -n 2"
39:  ^CacheTemp.ISC.Atelier("debug",21036,1,30) = "Calling state breakpoint_set"
40:  ^CacheTemp.ISC.Atelier("debug",21036,1,31) = "mapping: TAL:CNHSA.RPMS.HelloWorld.cls:Hello:2 -> CNHSA.RPMS.HelloWorld.1:7"
41:  ^CacheTemp.ISC.Atelier("debug",21036,1,32) = "Setting BP"
42:  ^CacheTemp.ISC.Atelier("debug",21036,1,33) = "IsStopped"
43:  ^CacheTemp.ISC.Atelier("debug",21036,1,34) = "Location zDebugStub+27:%Debugger.System.1:0:0:0:0:6:0:0:0:0:0:TAL"
44:  ^CacheTemp.ISC.Atelier("debug",21036,1,35) = "Stack 3^zDebugStub+27^%Debugger.System.1"
45:  ^CacheTemp.ISC.Atelier("debug",21036,1,36) = "BP enabled:CNHSA.RPMS.HelloWorld.1(7)::0"
46:  ^CacheTemp.ISC.Atelier("debug",21036,1,37) = "Event:breakpoint_set|<response command='breakpoint_set' transaction_id='9' state='enabled' id='1'/>"
47:  ^CacheTemp.ISC.Atelier("debug",21036,1,38) = "Received:breakpoint_set -i 10 -t line -s enabled -f dbgp://|TAL|CNHSA.RPMS.HelloWorld.cls -m Hello -n 2"
48:  ^CacheTemp.ISC.Atelier("debug",21036,1,39) = "Calling state breakpoint_set"
49:  ^CacheTemp.ISC.Atelier("debug",21036,1,40) = "mapping: TAL:CNHSA.RPMS.HelloWorld.cls:Hello:2 -> CNHSA.RPMS.HelloWorld.1:7"
50:  ^CacheTemp.ISC.Atelier("debug",21036,1,41) = "Setting BP"
51:  ^CacheTemp.ISC.Atelier("debug",21036,1,42) = "IsStopped"
52:  ^CacheTemp.ISC.Atelier("debug",21036,1,43) = "Location zDebugStub+27:%Debugger.System.1:0:0:0:0:6:0:0:0:0:0:TAL"
53:  ^CacheTemp.ISC.Atelier("debug",21036,1,44) = "Stack 3^zDebugStub+27^%Debugger.System.1"
54:  ^CacheTemp.ISC.Atelier("debug",21036,1,45) = "BP enabled:CNHSA.RPMS.HelloWorld.1(7)::0"
55:  ^CacheTemp.ISC.Atelier("debug",21036,1,46) = "Event:breakpoint_set|<response command='breakpoint_set' transaction_id='10' state='enabled' id='2'/>"
56:  ^CacheTemp.ISC.Atelier("debug",21036,1,47) = "Received:run -i 11"
57:  ^CacheTemp.ISC.Atelier("debug",21036,1,48) = "Calling state run"
58:  ^CacheTemp.ISC.Atelier("debug",21036,1,49) = "IsStopped"
59:  ^CacheTemp.ISC.Atelier("debug",21036,1,50) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL"
60:  ^CacheTemp.ISC.Atelier("debug",21036,1,51) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1"
61:  ^CacheTemp.ISC.Atelier("debug",21036,1,52) = "Hit A BreakPoint"
62:  ^CacheTemp.ISC.Atelier("debug",21036,1,53) = "Event:status|<response command='run' status='break' reason='ok' transaction_id='11'/>"
63:  ^CacheTemp.ISC.Atelier("debug",21036,1,54) = "Received:stack_get -i 12"
64:  ^CacheTemp.ISC.Atelier("debug",21036,1,55) = "Calling state stack_get"
65:  ^CacheTemp.ISC.Atelier("debug",21036,1,56) = "stack: 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1"
66:  ^CacheTemp.ISC.Atelier("debug",21036,1,57) = "mapping:zHello+2^CNHSA.RPMS.HelloWorld.1 -> TAL:CNHSA.RPMS.HelloWorld.cls:Hello:2"
67:  ^CacheTemp.ISC.Atelier("debug",21036,1,58) = "Event:stack_get|<response command='stack_get' transaction_id='12'><stack level='1' type='file' filename='dbgp://%7CTAL%7CCNHSA.RPMS.HelloWorld.cls' method='Hello' methodoffset='2' lineno='2'/></response>"
68:  ^CacheTemp.ISC.Atelier("debug",21036,1,59) = "Received:context_names -i 13 -d 1"
69:  ^CacheTemp.ISC.Atelier("debug",21036,1,60) = "Calling state context_names"
70:  ^CacheTemp.ISC.Atelier("debug",21036,1,61) = "IsStopped"
71:  ^CacheTemp.ISC.Atelier("debug",21036,1,62) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL"
72:  ^CacheTemp.ISC.Atelier("debug",21036,1,63) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1"
73:  ^CacheTemp.ISC.Atelier("debug",21036,1,64) = "IsStopped"
74:  ^CacheTemp.ISC.Atelier("debug",21036,1,65) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL"
75:  ^CacheTemp.ISC.Atelier("debug",21036,1,66) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1"
76:  ^CacheTemp.ISC.Atelier("debug",21036,1,67) = "Event:context_names|<response command='context_names' transaction_id='13'><context name='Local' id='0'/><context name='Global' id='1'/></response>"
77:  ^CacheTemp.ISC.Atelier("debug",21036,1,68) = "Received:context_get -i 14 -d 1 -c 0"
78:  ^CacheTemp.ISC.Atelier("debug",21036,1,69) = "Calling state context_get"
79:  ^CacheTemp.ISC.Atelier("debug",21036,1,70) = "IsStopped"
80:  ^CacheTemp.ISC.Atelier("debug",21036,1,71) = "StackLevel IDE->Cache:1->5"
81:  ^CacheTemp.ISC.Atelier("debug",21036,1,72) = "StackVars lev=5"
82:  ^CacheTemp.ISC.Atelier("debug",21036,1,73) = "IsStopped"
83:  ^CacheTemp.ISC.Atelier("debug",21036,1,74) = "Location zHello+2:CNHSA.RPMS.HelloWorld.1:7:8:7:18:0:7:8:7:18:0:TAL"
84:  ^CacheTemp.ISC.Atelier("debug",21036,1,75) = "Stack 3^zDebugStub+30^%Debugger.System.1:5^zHello+2^CNHSA.RPMS.HelloWorld.1"
85:  ^CacheTemp.ISC.Atelier("debug",21036,1,76) = "Context:0:~var:HELLO WORLD"
86:  ^CacheTemp.ISC.Atelier("debug",21036,1,77) = "Event:context_get|<response command='context_get' context='0' transaction_id='14'><property name='var' fullname='var' type='string' constant='0' children='0' size='11' numchildren='0' encoding='none'>HELLO WORLD</property></response>"

I have confirmed that. It even shows that it is upgrading to a websocket connection in the HTTP trace.

I believe I do. If I didn't, I wouldn't be able to query anything using Visual Studio Code correct?

Alright, I figured out that the problem is due to my CSP Web Gateway.

I switched my server connection to go directly to the server through the private apache web port. It worked without any issues! Does anyone have any guidance on what application access I'm probably missing on my CSP Gateway?

Hey @Raj Singh,

It was very helpful and a wonderful source of information, but I'm still not able to debug anything through VSCode. It seems like it will attach or launch but then will never hit my breakpoint and allow me to actually debug the process

I have followed your post and unfortunately haven't had any luck. It seems to get put into the Call Stack but nothing happens after that. Here is an image of what it currently looks like on my debug:
 

I also turned on debugging and this is the information I got in the globals:

^CacheTemp.ISC.Atelier("debug",21088) = 1
33:  ^CacheTemp.ISC.Atelier("debug",21088,1,0) = 5
34:  ^CacheTemp.ISC.Atelier("debug",21088,1,1) = "Event:init|<init appid=""AtelierDebugger"" idekey=""Atelier"" session=""21088"" thread=""1"" parent=""Cache for Windows (x86-64) 2017.2.2 (Build 865_3_20793U) Thu Apr 15 2021 16:04:37 EDT"" language=""COS"" protocol_version=""1.0"" fileuri=""file://""> <engine version=""1.0"">%Atelier.XDebugAgent</engine> <company>InterSystems Corporation</company> <license>Copyright 2015 InterSystems Corporation</license> <url>http://www.intersystems.com</url> <copyright>Copyright 2015 InterSystems Corporation</copyright></init>"
35:  ^CacheTemp.ISC.Atelier("debug",21088,1,2) = "Received:feature_get -i 1 -n stop"
36:  ^CacheTemp.ISC.Atelier("debug",21088,1,3) = "Calling state feature_get"
37:  ^CacheTemp.ISC.Atelier("debug",21088,1,4) = "Event:feature_get|<response command='feature_get' feature='stop' supported='1' transaction_id='1'></response>"
38:  ^CacheTemp.ISC.Atelier("debug",21088,1,5) = "OnClose"

Yea I was wondering if I can maybe format in a  bit of a nicer way to where it'd be readable kind of like this:

set tEmail = ##class(%Net.MailMessage).%New()

set tEmail.IsHTML=1

set html = &html<

<html>

<body>

<b>Hello, World!</b>

</body>

</html>

>

set tSC = tEmail.TextData.Write(html)

set tSC=..Adapater.SendMail(tEmail)

I know you can't assign embedded HTML to a variable, but I didn't know if there was a different way of doing it.

I think I did find a work around however by using SendGrid and just doing a JSON post to SendGrid that will send my email through the use of a template, but I guess it is just moreso for curiosity sakes now.