alpacahq / alpaca-trade-api-csharp

C# SDK for Alpaca Trade API https://docs.alpaca.markets/
Apache License 2.0
251 stars 83 forks source link

Enable HTTP/2 support in SDK #348

Closed OlegRa closed 3 years ago

OlegRa commented 3 years ago

Because Alpaca REST API supports HTTP/2 access we can enable it in SDK and check how stable it works.

gjtorikian commented 3 years ago

I'm not sure this works. Using code from #347, I get the following stack error:

Unhandled exception. System.Net.Http.HttpRequestException: An error occurred while sending the request.
 ---> System.IO.IOException: The request was aborted.
 ---> System.IO.IOException: The response ended prematurely while waiting for the next frame from the server.
   at System.Net.Http.Http2Connection.<ReadFrameAsync>g__ThrowMissingFrame|48_1()
   at System.Net.Http.Http2Connection.ReadFrameAsync(Boolean initialFrame)
   at System.Net.Http.Http2Connection.ProcessIncomingFramesAsync()
   --- End of inner exception stack trace ---
   at System.Net.Http.Http2Connection.ThrowRequestAborted(Exception innerException)
   at System.Net.Http.Http2Connection.Http2Stream.CheckResponseBodyState()
   at System.Net.Http.Http2Connection.Http2Stream.TryEnsureHeaders()
   at System.Net.Http.Http2Connection.Http2Stream.ReadResponseHeadersAsync(CancellationToken cancellationToken)
   at System.Net.Http.Http2Connection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at System.Net.Http.Http2Connection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
   at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext)
   at Polly.AsyncPolicy`1.ExecuteAsync(Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
   at Polly.Wrap.AsyncPolicyWrapEngine.<>c__DisplayClass2_0`1.<<ImplementationAsync>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at Polly.Retry.AsyncRetryEngine.ImplementationAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates`1 shouldRetryResultPredicates, Func`5 onRetryAsync, Int32 permittedRetryCount, IEnumerable`1 sleepDurationsEnumerable, Func`4 sleepDurationProvider, Boolean continueOnCapturedContext)
   at Polly.AsyncPolicy.ExecuteAsync[TResult](Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
   at Polly.Wrap.AsyncPolicyWrapEngine.ImplementationAsync[TResult](Func`3 func, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext, IAsyncPolicy outerPolicy, IAsyncPolicy`1 innerPolicy)
   at Polly.AsyncPolicy`1.ExecuteAsync(Func`3 action, Context context, CancellationToken cancellationToken, Boolean continueOnCapturedContext)
   at Alpaca.Markets.ThrottleParameters.CustomHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.SendAsyncCore(HttpRequestMessage request, HttpCompletionOption completionOption, Boolean async, Boolean emitTelemetryStartStop, CancellationToken cancellationToken)
   at Alpaca.Markets.HttpClientExtensions.callAndDeserializeAsync[TApi,TJson](HttpMessageInvoker httpClient, HttpRequestMessage request, CancellationToken cancellationToken)
   at Alpaca.Markets.HttpClientExtensions.callAndDeserializeAsync[TApi,TJson](HttpMessageInvoker httpClient, HttpMethod method, Uri endpointUri, CancellationToken cancellationToken)
   at Alpaca.Markets.HttpClientExtensions.GetAsync[TKeyApi,TValueApi,TKeyJson,TValueJson](HttpClient httpClient, UriBuilder uriBuilder, IEqualityComparer`1 comparer, Func`2 elementSelector, CancellationToken cancellationToken)
   at Alpaca.Markets.AlpacaDataClient.GetSnapshotsAsync(IEnumerable`1 symbols, CancellationToken cancellationToken)
OlegRa commented 3 years ago

At least it failed inside the HTTP/2 protocol handler. I'll check that happened if you'll provide STR - exact code snippet (request data matters in this case), and the .NET/OS version/bitness information.

gjtorikian commented 3 years ago

Snippet:

exchangeToStocks.TryGetValue(exchange, out ConcurrentBag<string> stocksOnExchange);
var x =  await alpacaDataClient.GetSnapshotsAsync(stocksOnExchange).ConfigureAwait(false);

exchange is Nyse; stocksOnExchange is:

UNVR,UNH,UMH,UL,UIS,UGP,UE,TTI,TPB,TNP,TMX,TMAC.U,TKC,TIXT,TEO,SUZ,SUM,STZ,STT,STNG,STAG,CLAA,SRT,IACC,SOLN,FRXB,SON,SOJC,SNP,SBII,SM,ACII,AC,ACEL,ACC,ABBV,STPC,SMM,MHO,CAJ,BSX,PG,HCI,GFF,ABT,AAIC,AAT,BJ,VAL,PWSC,SF-D,MLNK,BITE,BA,EXPR,AX,RONI.U,EFT,ATTO,GCV,FTEV,FMAC.U,FDP,FICO,FBP,F,ENR,ENBL,ELVT,EHC,EGGF.U,ECOM,CEN,SR,CFG,PCM,PSTG,SI,RVT,OEC,OCA.U,NNY,NNA,NMCO,NIE,NGS,NGAB,NFG,LGI,NINE,NHF,NGL,NGC,NEWR,NET,MFGP,AGCO,QSR,RH,RAAS,PTR,QTS,RL,PYT,PYN,PSFE,RA,RBAC,PRA,NTZ,NEE,PROS,GDO,MTX,PRU,RMM,AIZ,YAC.U,NEP,NKG,TVC,TRTL.U,CIT,SOJB,SLCA,RGT,QGEN,AIRC,AJRD,TSQ,TR,SWM,SRE,SPFR,SPAQ,RSI,RENN,PV.U,PTA,GSQB.U,GPI,CR,CI,CCI,CHWY,BRK.B,KAI,HZN,IAA,HUN,HQL,HIW,HIO,FT,CTAC,CRU.U,BSTZ,BK,IAE,WPG,WIT,WEX,WAT,VVI,VTN,XHR,WWW,WTRU,WRE,WPM,WOW,WHG,WBK,UBP,UAA,TYL,TWLO,TVE,TSPQ.U,TRTN,TPL,TMST,TIMB,TGP,TFX,TFC,URI,UNP,UAN,TWTR,TRTX,TRCA,TPC,TJX,TINV,THS,TG,SNR,SNII,SMWB,SMFG,SJIV,SGFY,SRI,SPE,SNA,SMAR,SJR,SITC,SEAS,SCS,PSPC,PRGO,PNR,PKI,RDN,RCA,R,PXD,PVG,PSF,PRPB,PRI,PPL,OXM,PMVC,PKO,PINS,PHX,PDOT.U,PCPC,PCF,PBC,PAR,OTIS,OKE,OI,OCN,NYT,NXU.U,PEG,PDOT,PCOR,PBH,PAY,ORAN,OPA.U,MSGE,MSB,MQY,MOTV.U,MMM,MLI,MIT,MFM,MD,MT,MSI,MSCI,MP,MMI,MKC,MIC,MGA,MEC,MCD,MAA,LXFR,LTHM,JGH,LAIX,KOS,KKRS,K,JW.B,JTD,JOF,JHB,KNOP,KWR,KR,KEX,HSY,HSC,HOV,HIGA,HEP,HCA,IGA,ICD,IACB,HT,HRI,HLX,HKIB,HHC,HEXO,HCHC,HBI,HAYW,HAE,GDOT,FUSE.U,GL,GJH,GIC,GHL,GF,FVRR,FTI,FSNB,FRT,FRC,GFLU,GEF,EGP,FBK,FAM,ETR,ESTC,ESM,ESGC,EQR,EPAM,EMN,EFL,FE,FDEU,FCPT,FACT,CX,CWEN,CVX,CVE,CURV,CSR,CRY,CRHC,CPE,CNVY,CNMD,CNC,CMSC,CMP,CMI,DEA,DDL,DAR,DAL,CYD,CWT,CURO,CUBI,CSV,CRS,CMC,AEO,CIA,CHH,CCV,CCAC.U,BY,CLW,CHCT,CHAA,CE,CCV.U,CAT,C,BYD,BW,BRO,BRDG,ASIX,ASAQ.U,ARL,AQNA,AP,AGL,AMWL,AGD,BGR,BFK,BEP,BBVA,BBDO,AXR,BH.A,BGIO,BEN,BDJ,AZUL,AWP,AVAN,AMH,AFGD,BIPC,BHLB,BGY,BGB,BFAM,BB,ASZ,ASG,ARW,ARCO,AQUA,APG,ALX,AFGC,BIP,BGX,BFZ,ARMK,ARI,ANAC,AMRC,BGSX.U,BEST,BAMH,ATCO,AMX,OPP,OC,OIBR.C,NYCB,NX,NWN,NLS,NHI,NEV,NAPA,MYI,MXF,MVT,MO,MTG,MDH.U,LW,MBAC,MAXR,LZB,LFT,LEN.B,LEG,LDI,JMP,JLS,JCO,XPOF,VSCO.WI,OPFI,BE,BBWI.WI,AAN,LAW,AVTR,UPS,ACIC.U,HMC,GGG,GATO,FGB,GE,ESI,ES,CNM,ABR,FCX,ALG,CCVI,BLE,ACRO.U,BCH,ARR,AMN,CRM,AFL,AES,ASAN,AMBC,BUR,AVYA,AZEK,IDT,ETB,NMS,SB,HCXY,SHI,SKX,SNV,ROK,HEI.A,SNII.U,EVA,SJT,RIO,SA,PRPB.U,GEL,GD,ENJ,DIAX,DIS,CLS,CNHI,CFXA,CB,AEVA,BDC,EXTN,CHMI,CLBR,CIXX,CDE,CARS,BRW,BUD,BCSF,FSM,FACA.U,ETWO,OWL,MTZ,NI,MMD,MGY,MEG,LUB,LHC.U,HZO,PZN,PAG,NQP,NC,MOG.A,MIN,MOH,MFC,MFL,ZBH,Y,XPOA,WY,WTS,WSO,WRI,WPP,WPC,WLK,ALCC,ADX,AEG,ZNH,ZIP,ZH,YRD,XYF,WTM,UZA,UVV,USPH,USM,VST,VPV,VOYA,VNO,VHC,VGM,UZF,UWMC,UTZ,VMW,VLRS,VHI,VGR,VER,TECK,TARO,TALO,T,SXI,SWCH,STVN,STRE.U,SSTK,SRL,SPXX,SOJD,SYY,STZ.B,STN,RPAI,RNGR,RKTA.U,REZI,RCC,SAP,RXN,RRC,RICE,RFL,RF,RBC,PUK,PFO,PEI,PCPC.U,PCG,PAYC,PARR,OSCR,ORC,ONTF,OLP,OIA,PGRE,PDS,PCQ,PAM,MUR,NXQ,NWHM,NVG,NUO,NTG,NSTD,NSL,NRUC,NRG,NNN,NMM,NGAB.U,NEX,NCA,NBR,NAZ,MYJ,MUX,MTL,MSGS,MSC,NXP,NWG,NVS,NUW,NSTC.U,NSH.U,NREF,MAC,LXU,LOW,LOKM.U,LL,LIII.U,LGV.U,LEV,LAD,MFG,MDU,MCW,MCG,LYB,LOMA,LH,LGF.A,LEVI,LDOS,LCI,LADR,KYN,KSS,KRP,KRG,INSI,IHG,IH,IGD,INS,ING,IIF,IHD,IFN,HTGC,IACB.U,HVT,HUM,HTPA,GJO,GIL,GHLD,GGT,GGB,GCP,GBX,GBL,GB,GTY,GTN,GSQD.U,GSL,GPOR,GOTU,GOLF,GNL,GMRE,GKOS,GIB,GHG,GFX,GENI,GSK,GRP.U,FDS,FCRW,FC,FAF,EVF,ETN,FERG,FCAX,EXK,ETV,ET,ERJ,EQC,EPC,DNOW,DMYI,DLNG,DIDI,DGNR,EDN,EAF,DYFN,DSU,DSM,DS,DQ,DNB,DMYQ,DFNS,DEI,EDF,DBRG,DBI,DB,CVS,CVII,CTR,DEO,DEH,DECK,COR,CNNE,CND.U,CM,DAN,CXE,CUZ,CUK,CTO,CL,CII,CHT,CHE,CGAU,CEQP,CEE,CCZ,CCO,CAI,CAAP,BX,BWA,BTT,CEIX,CDAY,CBB,CANO,CADE,BXMX,BV,BOX,BNED,BLK,BIPH,BIO.B,BWXT,BHVN,BEPH,BDX,BC,BARK,BAC,BBDC,B,APLE,AOS,AAP,ATH,ARES,ARCH,AQNU,AFG,AQNB,APTS,AMCR,NCR,MSA,MDT,JPM,GOAC.U,EBF,DXC,DNMR,DHI,DCP,CNS,CELP,CBRE,BOAS,BILL,BEDU,ARGD,AON,ISOS,AFGE,MOG.B,RFM,PBI,NOW,M,HRC,BIG,AVA,AMPY,AGTI,ALE,AVNS,AVLR,AVB,AUS.U,ATUS,ATMR.U,ATI,ATHM,ATC,ATA,ASZ.U,ASGI,ARNC,ATHN.U,ASAQ,ASAI,ARGO,ARE,ARC,AOD,ANF,AOMR,DCI,JQC,DGX,ADNT,MPLX,AIF,ACA,TYG,TWOA,TX,ENB,TWND.U,TCS,WDI,YPF,TPVG,KEY,SIG,TWO,RPM,SHO,SGU,SEMR,WHD,YSG,TREX,ESS,EQHA,EPD,EOCW.U,ENIC,EMF,EL,SF,RTPZ.U,FBC,ECCC,EBR,EEX,ECCX,CFR,BST,BZH,BF.A,ACII.U,POST,FZT,AIV,ALIT,ALB,AGCB,ACI,JLL,YOU,AIO,AGX,AER,MFV,DIN,OVV,TWN,CYH,MCN,JAX,IPOF,HD,IEX,IAG,NLY,MSM,MAN,MA,LEA,LIII,LAZ,JCI,HXL,WRB,V,BMA,WIA,WH,ZUO,ZME,YUM,YETI,YALA,WTTR,WSR,WPCA.U,WGO,WEI,ALLE,ZEPP,YMM,XYL,XRX,XOM,UNF,UGIC,UBS,TWND,TTP,VIAO,VEC,VAC,UVE,UTL,USFD,USA,TXT,TWNI.U,TUYA,SRG,SQZ,SPLP,TAC,STOR,STM,SPR,SPNT,SPB,SOL,SOAC.U,PSTH,RTP.U,RNP,RJF,RFP,REV,RCUS,RCI,RACE,QUOT,QFTA.U,PSTL,PRMW,REXR,RDY,RAMP,PTY,OSG,ORCL,ONTO,ONE,OMI,PGTI,PFH,PDAC.U,PCN,PB,PANW,PACE.U,ORI,OR,OOMA,OHI,OG,ODC,MMU,NKX,NIMC,NFH,NEU,MYC,MTW,MTOR,MTDR,MTB,MSP,MRO,MPX,MODN,MNP,MLR,MIY,MIE,MHI,MGRB,MGF,NEA,NCV,MYE,MWA,MUSA,MUA,MTRN,KTN,KREF,KN,KEN,JT,JRS,JPC,JILL,JEQ,JBT,KKR,KFS,KEP,JW.A,JTA,JPT,JPI,JOE,JHAA,HTPA.U,HPP,HNGR,HIL,HI,HFC,HRL,HII,HHLA.U,HE,HBM,GTES,GS,FND,FMO,FLT,FINV,FIF,FVIV.U,FTHY,FST.U,FRO,FPF,FMAC,FLNG,FLC,FI,EVRI,EVH,ETRN,ESM.U,EOD,ENPC,EMD,ELY,ELF,EGF,EQNR,EPWR.U,EOT,ENO,ELS,ELC,EIC,EGO,DRUA,DPG,DOCS,DMO,DM,DHF,EDU,ECL,EC,EARN,CMSA,CMO,CMG,CMCM,DCF,DBD,DAVA,DAC,CWH,CW,CVNA,CTVA,CTLT,CSTA,CSL,CRT,CSU,CSPR,CPSR.U,CPK,CPAC,CNQ,CMS,CLF,CS,CCEP,CORR,CO,CNP,CNF,CNA,CIM,CIEN,CAH,BXS,BTCM,BSN.U,BSM,BQ,BIT,CIB,ATGE,AMC,AGAC,BHR,BHC,AMAM,BHP,APGB,BAMR,AZRE,HUBS,WMT,IDA,GRX,GNW,GNPK,GNK,GMED,GLOB,FVT,FLME,FNV,FHN,EVRG,EFX,EB,DSX,DSL,ROSS.U,CNK,TLGA,ORCC,GPM,BIO,CCL,ABC,ETJ,DTP,BSAC,BGT,BDN,BKE,BALY,BBD,ASC,BHE,BFLY,BABA,ARDC,AGS,APTV,NABL,AFT,SUNL,APAM,ABEV,ABG,APGB.U,VRS,TDC,VZIO,PV,OSK,AIC,BKI,BEPC,BTO,TSE,TSLX,MVO,CAG,TOL,BLL,AEM,EQD,SDHY,HVT.A,HR,HPI,HOG,CINR,HL,SMG,ERO,ETY,SQM,HLF,HIMS,HIG,HHLA,AGI,ANAC.U,GPK,HPF,HMLP,HLLY,HIX,HGV,HEQ,COTY,COMP,CHRA,CPA,CPRI,CALX,BTA,BANC,EXG,CLX,CELG.RT,CGA,CDR,BCS,BRK.A,BTU,REX,PHK,HDB,NSTC,NOMD,NIO,NGG,NBHC,MUI,MMS,MHLA,MET,LIN,KW,OSI,ORN,GWW,OLN,NVST,NTCO,NP,NKE,MVF,MNR,FBHS,EPR,CULP,CIR,BORR,AGM,ZTO,EVC,FCAX.U,DASH,CVA,CLVT,CHPT,BUI,BWSN,ZTR,VEL,VZ,VVR,VRTV,VPCC.U,VNE,VIST,VGI,VCRA,USX,VYGG.U,TSM,TRP,TREB.U,TPGY.U,ALTG,TNC,TLGA.U,TGT,TFII,TDI,TAP,SWBK.U,SUPV,STRE,TRGP,TPX,TNET,TMAC,THC,TGI,TEL,TDOC,SAN,S,RYAN,ROT.U,RNG,RKTA,RHP,RFI,SLAC.U,SKIL,SIX,SFE,SEE,SCVX.U,SCI,SCD,SAIL,RSF,RNR,RLX,PVH,PRPC,PNI,PMVC.U,PJT,PFS,PFD,PRPC.U,PPG,POLY,PNM,PIPP,PHM,NSTB.U,NSH,NRP,NOC,NMI,NYC,NXR,NVGS,NUE,NSTD.U,NSP,NRZ,NPK,NOK,NMR,NEXA,NEM,NAC,MXE,MUE,MTCN,NZF,NXRT,NVT,NTST,LHX,MPC,MOV,MOS,MOGU,MIT.U,MHN,MGU,MGM,MCB,LND,MHF,MGR,MEI,MCS,MCA,JCE,J,IRL,IPI,KAHC,JWSM,JHS,JFR,JEF,JBGS,IX,ITW,IR,IPVA.U,INN,IMPX.U,IFS,IFF,IBP,HLI,HGLB,HBB,GWRE,GVA,GTS,IDE,IBN,GSLD,GSAH,GPS,GOF,GJR,GIM,GGZ,GFL,GER,FR,FPH,FF,FVIV,ECCW,DVA,DOCN,DLY,DK,DE,ECC,EAI,DBL,CPTK,CPF,AVAN.U,AUS,APRN,ATO,ADT,BHG,SHW,SJI,SITE,SID,SHLX,RVI,RS,RQI,ROT,SCL,QFTA,PLNT,PFE,PBT,PBR.A,PBFX,WRAC.U,EQHA.U,MITT,WLL,EQH,MGRD,RELX,CND,ZETA,EVTC,EVN,FXLV,TD,PRS,THW,CBT,BGH,DFS,GRA,AZZ,BOE,KTF,KRA,KMF,KIO,PMF,KIM,KGC,KEYS,ESRT,SPH,SPAQ.U,JRI,JPS,DHT,TBB,SYF,OMF,HZON.U,MUC,GFX.U,GAB,FCRX,FCF,PSB,NXN,KOF,GAPA,NTR,MANU,FL,FACA,DDS,CLI,CLBR.U,LGV,IVH,GHY,FN,FMC,FACT.U,CPG,COF,CEM,PUMP,PEAK,MLP,NGVC,NAN,MPV,MKFG,SNX,SKLZ,RY,RMAX,RIV,NRT,MYTE,MIXT,MG,JWN,MCO,MACC,ROG,CLAA.U,BSL,BITE.U,AMT,HLT,HTH,GTN.A,CTDD,CRI,CHAA.U,BCE,AIN,AL,AKR,ALEX,HQH,VNT,VMI,VIV,VICI,VGII.U,VEDL,UZD,WF,WCN,WAL,VTOL,VSH,VNCE,VLT,VET,TRNO,TPZ,TNL,TISI,THR,TGNA,TEVA,TEN,TDY,TDA,TCI,UGI,TRCA.U,TPGY,TMHC,TKR,TINV.U,THG,TEI,TDF,RPT,ROSS,RMI,RM,RKT,RHI,SMHI,SJW,SFTW,SCU,RYI,RVLV,RTP,ROP,RMT,RMD,RLJ,RICE.U,RFMZ,SKT,SJIJ,SE,POR,PNF,PMT,PKG,PICC,PGP,PSO,PNW,PNC,PMM,PLAN,PKE,PIM,PHT,PH,OPY,OMC,OGS,OCFT,OCA,OACB,NXC,NSC,NRK,NPV,NOV,ORA,OPA,NXJ,NVRO,NUVB,MDLA,MCY,MATX,MACC.U,LU,LPI,MRK,MPLN,MNSO,MMP,MMC,MHNC,MDP,MCR,MBT,LYV,LUV,LTC,KCAC.U,KAMN,JBL,JHX,JHG,JEMD,KTB,KMI,KCAC,KAHC.U,JWSM.U,JSD,JNPR,JMIA,JELD,IBM,IBER,HPQ,HNI,HES,HCC,H,IFFT,ICL,HZAC,HWM,HSBC,HPX.U,GPMT,GOL,GLOP,GLEO.U,GJT,GIS,GFOR,GEF.B,GDV,FZT.U,FSR,FRA,FPI,FPAC,FOUR,FOR,FMS,FLY,FLR,FLOW,ETH,ERF,EPWR,EMR,ELP,ELAT,FENG,FCT,EXD,EVG,ETO,EPAC,ENZ,ECCY,DX,DTE,CPLG,CPB,CMA,COLD,CODI,CNR,CLIM,CIO,CIG,CHGG,CAF,BXP,BSN,BRX,ASB,AB,PGR,A,SPXC,SPGI,RLI,PBF,OFG,MFA,VRT,SXT,SHAK,PCGU,LEJU,KB,ITT,GWB,GPC,G,EVT,ESNT,BRT,BRC,BMO,BKU,AWI,ATKR,AJAX,XEC,VBF,TK,STE,DCUE,DD,DCO,CNI,CTS,CRL,CRH,CLIM.U,CLDT,CAE,CLDR,CLAS.U,CBZ,CATO,BP,CBH,CBAH.U,CARR,BR,BPMP,BRFS,BOOT,BOAS.U,BNS,BNY,BNL,BLW,ATR,BMY,BMEZ,BLX,BLUA,BMI,BBAR,ASPN,BG,CEA,ASX,AMPI,AWF,AMRX,SWZ,REVG,RE,RCL,DLR,DHX,DEX,AEL,AEE,MOD,AMOV,BCAT,TT,TSN,TROX,TMO,SONY,AAC,THQ,TGS,TGH,TDG,TBI,SWX,SWI,SUN,GNRC,APH,BAK,CC,BGS,AGR,SQSP,SFBS,SAM,SAR,SFUN,RZA,SNOW,FTAI,FSNB.U,ETX,ESTE,BIF,ADC,BBN,BURL,CHN,CEPU,AXS,BYM,ADEX,BAM,BH,AUY,BVN,BHV,ACV,BSAQ.U,CXP,CLR,MFD,LPG,LGF.B,L,RDS.A,RBLX,IVC,PSPC.U,PQG,PGZ,PEO,NAT,MTR,MLM,MED,MBAC.U,LNFA.U,LOKM,LDL,KSM,IIIN,ZEV,XPEV,CRD.B,CIF,BKD,ADS,AMK,AJAX.U,AMG,AIT,YELP,YAC,XPOA.U,XIN,XFLT,AME,AFB,AM,AJXA,ZTS,VNTR,VCV,VALE,UZE,UTF,WARR,W,VVV,VTA,VPG,VGII,VFC,VCIF,VAPO,SUI,STWD,STON,STK,STC,SRV,SRLP,TEF,TEAF,STPC.U,STL,SPNV.U,SNDR,RERE,SHOP,SCPE,SBS,SBBA,SAK,RZB,RWT,RTPZ,RSG,RIG,RGA,RES,SFL,SEAH,SD,SC,SBH,PFSI,PFL,PFGC,PEN,PDT,PDI,PDAC,PCK,PAGS,POND.U,PNTM.U,PML,PM,PLOW,PIPR,PIAI.U,PHR,PHG,PDM,PBR,PBA,PAI,PACK,OXY,PING,PICC.U,PHI,NNI,NLSN,NJR,NGVT,NCZ,NBXG,MX,MTH,NSS,NSA,NPTN,NMT,NM,NIM,NAD,MYOV,MXL,MUJ,MTD,MS,KNX,KMPR,KF,KBR,JMM,JHI,LII,LEAP.U,LAC,KTH,KRO,KRC,KOP,KMX,HUBB,KAR,JRO,JP,IGI,JBI,IVAN.U,IPVF.U,IPOD,INSP,INFO,IVAN,ITCB,ISOS.U,ISD,IRT,IPVF,INVH,HTFB,HPS,HNP,HMN,IBA,HZAC.U,HYI,HUYA,HUGS.U,GDL,GBAB,GSAH.U,GPJA,GOAC,GNPK.U,GM,GAM,FSS,FMX,FTV,FTCH,FST,FREY,EOG,ENV,EXP,EGHT,EFR,EDR,DVD,DTY,DTF,DFIN,DEN,CCJ,CBU,CBD,CAP,BWG,BVH,BTZ,BPT,BGSX,BFS,BERY,ATAQ.U,AAQC,AXP,AWR,DRQ,QUAD,QTWO,MCK,LB,KT,IVZ,HFRO,GPRK,FCN,EVR,AN,ACCO,ABB,EQS,WSM,WNC,WMS,TS,TREB,TRC,SHG,SFB,PKX,PD,OUT,NUS,NDP,BLUA.U,BLD,BME,BLDR,BKR,BHK,BGSF,BCX,BCO,BCEI,BBU,BCC,BBY,BBW,AYI,BAP,AXL,AVK,TBC,SZC,SWT,TAP.A,TAL,TACA,ST,FEI,ASH,EXR,ENIA,SBII.U,SAFE,SAF,AESC,RYN,AR,SAND,LMT,SAIC,QD,MQT,RGR,PRT,SII,PSXP,YEXT,TLYS,SYK,RCB,MPW,TUP,XPO,AEB,SO,DESP,CSTM,PEB,PDO,EBS,BKT,CTK,CRU,RAD,RBAC.U,CRHC.U,CRD.A,CPT,CPNG,CORS.U,DRD,CRC,CPUH.U,CPSR,CP,SCPE.U,SBSW,RGS,TTM,TEX,SNPR,SMP,SBI,ZVIA,TPR,SSL,SPCE,SPGS.U,SOR,SLG,SAH,JKS,ZIM,IRS,WIW,TUFN,SNN,SOAC,SPGS,SNAP,SKY,MAV,MDC,LSPD,LCII,KBH,ITUB,IBER.U,HYLN,HY,HYT,HTA,HGH,GPX,FTK,FUSE,EW,LEN,LITB,LBRT,JDD,HYB,HRB,HMY,XL,WTRG,WOR,WMK,WFG,ADM,ZEN,YUMC,X,WWE,WU,WTI,WST,WPCB,WMB,WHR,WDH,WBT,TRV,TRQ,UTI,USNA,USB,UP,UNFI,UBA,TWNI,TTE,TREC,TPTA,TPH,TM,USDP,UNMA,UI,TACA.U,SWK,STEM,SREA,SQNS,SPNV,SPG,SNPR.U,SWN,SWBK,SUP,SU,STLA,STG,SSD,SQ,SPOT,RDS.B,RCS,QS,PYS,PVL,PSN,PRTY,PRLB,PPT,POND,PNTM,PMX,PLYM,PLTR,PLD,PK,PIPP.U,PII,PIAI,PHD,QVCC,PZC,PSX,PRO,PRG,OLO,OIS,OGE,OFC,NXU,PCI,PAC,OUST,OSH,OII,OGN,O,NVTA,NVO,PACE,OWLT,OSI.U,LSI,LPX,LNFA,MSD,MRC,MPA,MMT,MKC.V,MHD,MGP,MDH,MC,MBI,MAS,MAIN,LXP,LRN,LOKB,LMND,MOTV,MNRL,MN,MKL,MHK,INSW,IIAC.U,IHIT,IHC,IGR,JATT.U,IRM,IQV,IPVA,IMPX,IIM,IHTA,IGT,GOLD,GNT,GNE,GLP,GHC,GFOR.U,GES,GCI,GAPA.U,IO,INT,INFY,GJP,GHM,GGT.RT,GGM,GFI,GEO,FET,FTS,FTEV.U,FSK,FRXB.U,FPL,FPAC.U,FLME.U,FIV,FIS,FIGS,FHI,FEO,FLO,FIX,FINS,FEDU,ENPC.U,ENLC,EMO,EGY,EGGF,EDD,ECCB,EAT,E,DWIN.U,DV,DUKH,DTB,DRI,DOC,DMS,EDI,EBR.B,DY,DTW,DVN,DUK,DTM,DRE,DOV,DNZ,DMB,DHR,DFNS.U,DELL,DWIN,DUKB,DT,DRH,DOW,DNZ.U,DMYQ.U,DLB,CSTA.U,CSLT,CSAN,CPTK.U,CPS,COG,CNO,DAO,CXH,CWK,CXW,CVII.U,CUBE,COUR,COP,COE,CNX,CMSD,CLH,CLAS,BODY,BDXB,BAH,AXTA,AVD,ATMR,AVNT,ATIP,ATEN,AIW,FUN,FOA,CRK,ALL,AYX,AMP,AIR,ACM,ADCT,ADF.U,JNJ,ZYME,YTPG,WFC,WEA,VMO,VLO,VIPS,TRU,VEEV,ANET,APSG,APD,AMPI.U,AJX,AJG,AIZN,AGRO,AKO.B,AI,AENZ,AIG,AHH,AGO,AGM.A,AFI,ACRE,AG,ADEX.U,ACIC,ACR,ACP,ACH,ACN,CF,CCS,CCM,CCVI.U,CAPL,CABO,BSIG,BRMK,AVAL,ABM,AAIN,AAC.U,XPO.WI,AUD,AAQC.U,WM,TTC,BAX,AWK,PSA,GATX,EQT,BRBR,DKS,STAR,SCVX,MAX,LUMN,LPL,LLY,LOKB.U,LNN,LHC,LFC,TAK,LDP,KWAC.U,SXC,SRC,KUKE,KMT,EIG,KO,SJM,EOI,SBOW,SEM,QVCD,HPX,PWR,ALSN,ALC,AKO.A,AHT,AGAC.U,AEFC,SEAH.U,SPFR.U,RYB,RBA,FFA,RC,PMO,WMC,TY,UFI,TME,SOGO,SOS,ROL,RRD,PINE,PFN,PATH,NPCT,WPCB.U,WELL,VEI,UHT,TPGS,SOI,SLAC,RTX,RMO,RLGY,HZON,HUGS,HP,HRTG,GCO,FDX,CUBB,CXM,CHS,CHD,BOAC,BKH,ALV,ALLY,ALK,ADF,HTD,HTY,HPE,HIGA.U,FUBO,GDDY,FVT.U,CLB,VVNT,VTEX,VOC,WSO.B,WRK,WPCA,WNS,WLKP,WK,WEC,WD,WBS,WALA,VTR,VSTO,VPCC,VMC,VKQ,WES,WCC,WARR.U,WAB,VYGG,USAC,UPH,UMC,UDR,UBER,U,TWNT,TV,TU,TRN,TRI,TNK,TLK,THO,TFSA,TDW,TDS,UNM,UHS,UFS,UA,TWNT.U,TWI,TSPQ,TSI,SOJE,SLQT,SLF,SFTW.U,SCHW,SCCO,SBR,SAVE,SMLP,SLB,SKM,SCX,SCM,RYAM,NS,NRGX,NPO,NOM,NOA,NID,NGC.U,NETI,NDMO,NCLH,NBB,MYN,MUFG,MTN,OACB.U,NVR,NUV,NTP,NTB,NSTB,NR,NOVA,NOAH,NMZ,NMG,NL,NIQ,NFJ,NEW,NE,MYD,KODK,KMB,MCI,LYG,LVS,LNC,LC,KWAC,KSU,KL,KFY,LEO,LEAP,INGR,JBK,IVR,ITGR,IQI,IPOD.U,IPG,IP,INST,IMAX,IIPR,IIAC,IT,IS,IPOF.U,GMS,GME,GLW,GLT,HIE,HESM,HEI,HASI,HAL,GUT,GOOS,GLEO,GJS,GXO.WI,GTLS,GSQD,GSBD,GRC,GPN,FOF,FNF,FNB,FMN,FLS,FUL,FSLY,FSD,FOE,FMY,FHS,FFC,ETG,EOS,ENS,ENBA,ED,ELAN,EIX,EHI,EFC,EEA,ETW,ESE,EQD.U,EPRT,ENVA,EMP,EME,DDT,DPZ,DOOR,DNP,DMYI.U,DKL,DDD,DGNR.U,DG,DEH.U,D,CWEN.A,CVEO,CTT,CTAC.U,DLX,DFP,DDF,CVI,CTOS,CTBB,CPUH,COO,CMU,CMRE,CLPR,CAS,BXC,BSBR,BOH,BSMX,BRSP,CIG.C,CFX,CCU,CCK,CCAC,CAP.U,BLND,BKN,BIGZ,CBAH,CAS.U,CANG,CAL,CACI,BXMT,BTI,BSA,BOAC.U,ATAQ,ASA,ARD,AQN,APSG.U,ATA.U,ASR,ASGN,AROC,AU,ATHN,BF.B,BEKE,BBL,BAMI,AZO,AVY,AFGB,APO,ANTM,AMR,ARLO,ICE,EURN,AA

.NET 5.0.302 / macOS 11.4; x64.

OlegRa commented 3 years ago

@gjtorikian After a long investigation with .NET and curl (and Google and coffee), I'm pretty sure it's an environmental issue.

I don't have the time (and will) to check how this very long URL (see #347) will work with Go or Python SDKs because it heavily depends on HTTP/2 implementations in these languages/frameworks. I'll summarize my findings here:

I'm unable to do anything with it on the SDK side. It's a server-side issue and you have to work around these problems on your side. At least until Alpaca's IT guys will configure NGNIX properly and it will eat such big requests or send the proper responses instead of dropping connection.

On my side I'll do the next before treating this one as closed:

gjtorikian commented 3 years ago

Thanks for that. I opened an issue as well to track on the DotNet side: https://github.com/dotnet/runtime/issues/56542

The stated value in the runtime is the absolute minimum frame size, and I think DotNet should also consider accepting any size within the stated range.