I am trying to display a value from list which is created from multi-joined SOQL and though the field is part of SOQL statement, I still get the error:  
> common.apex.runtime.impl.ExecutionException: SObject row was retrieved via SOQL without querying the requested field: Contact.bp_Billing_Address_1__c

Here in my controller:

    public  class BP_GeneratePDFCC {
    
       public list <CaseContactRole> getTodaysCases(){
          List <CaseContactRole> myCases =  [SELECT                          
                                    cases.createddate,
                                    cases.casenumber, 
                                    cases.StreetType__c, 
                                    cases.AptNum__c, 
                                    cases.ZipCode__c, 
                                    cases.DirPrefix__c,
                                    cases.DirSuffix__c,
                                    cases.StreetName__c, 
                                    cases.State__c, 
                                    cases.LotNum__c, 
                                    cases.HouseNum__c,
                                    cases.BP_IsTXNM__c,
                                    cases.fldSBlockNum__c,
                                    cases.order__r.BP_fldPendType__c,
                                    contact.name ,                                   
                                    contact.bp_CAddress_1__c , 
                                    contact.bp_CCity__c,
                                    contact.bp_CState__c, 
                                    contact.bp_CZipCode__c
                                    FROM 
                                        CaseContactRole 
                                    WHERE 
                                        Role = 'Primary Contact'];
           return myCases;        
       }     
    
    
    
    }

And here is my page. Note that I am rendering the page as pdf.

    <apex:page controller="BP_GeneratePDFCC" renderAs="pdf" showHeader="false" sidebar="false" standardStylesheets="false" applyBodyTag="false" applyHtmlTag="false">
        <head>
            <style>
                body {
                    font-family: Georgia, serif;
                    background: none;
                    color: black;
                    size: 10px;
                }
                @page {
                    size: letter;
                    margin: 0.25in;
                }
            </style>
        </head>
        
        <body>
            <apex:repeat value="{!TodaysCases}" var="c">
                <div >
                    <apex:outputText >{!c.CaseContactRole.Contact.Name}</apex:outputText>
                    <br />
                    <apex:outputText >{!c.CaseContactRole.Contact.bp_Billing_Address_1__c}</apex:outputText>
                    <br />
                    <apex:outputText >{!c.Contact.bp_CBillingCity__c}, {!c.Contact.bp_CBillingState__c}-{!c.Contact.bp_CBillingZipCode__c}</apex:outputText>
                     <br />
                </div>
                <div style="page-break-after:always;" />
             </apex:repeat> 
        </body> 
    </apex:page>