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>