RC2_UNKNOWN_SESSION
Unknown session
<name>. Available: the sessions in your compile catalog.
What it means
session= names a session from the catalog — the platform sessions plus any your organisation authored. A session is what gives a slot its bar timing (which minutes are a bar, in which timezone, on which weekdays), so an unresolvable name is not a detail the compiler can shrug off: there would be no answer to “what is one bar here”.
Session ids fail loud everywhere on the platform for this reason. An unknown id is always an error, never a silent fall-back to a default schedule.
Why it happens
A session that sounds plausible but isn’t in the catalog — usually an invented granularity:
class InventedSession(Strategy): trade = Symbol(session=USEquity15Min) sizing = FixedCapital()
def execute(self): if self.trade.is_flat: self.buy(self.trade)The error message lists what is available, which is the fastest way to see the name you meant.
How to fix it
Reference a session that exists. The platform ones are:
| Session | What it is |
|---|---|
USEquityHourly |
US equity regular hours, hourly bars. |
USEquityDaily |
US equity regular hours, one bar per session. |
Daily1615 |
Daily bar closing at 16:15 ET — cash-index and VIX settlement. |
class HourlySession(Strategy): trade = Symbol(session=USEquityHourly) sizing = FixedCapital()
def execute(self): sma = SMA(20, on=self.trade) if sma.value > 0 and self.trade.is_flat: self.buy(self.trade)Session names are identifiers, not strings — session=USEquityDaily, no quotes. And if none of the catalog sessions describes your instrument’s clock, author one: sessions are self-serve, written in RaamCode like strategies and indicators.
Related
- Sessions
Symbol()RC2_SYMBOL_UNKNOWN_KWARG— a misspelledsession=itself never reaches this check.