U should use ONLY x$ tables for this query,
because if instance not in OPEN mode and oracle can't read from SYSTEM tablespace yet.
Oracle can't use v$fixed_view_definition for works with v$instance fixed view.

select ks.inst_id,decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN','UNKNOWN'),
decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),
decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,'CHECKPOINT'),
decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),
decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN')
from
x$ksuxsinst ks, x$kvit kv
where kvittag = 'kcbwst';