yeah, I figured this was the right level of handling things so that there's no exceptions thrown, but also no changes gets persisted.  I'll add the comments.

On Nov 1, 2013, at 3:08 PM, brianhw <notifications@github.com> wrote:

> In common/lib/xmodule/xmodule/open_ended_grading_classes/open_ended_module.py:
> 
> > @@ -281,9 +281,23 @@ def _update_score(self, score_msg, queuekey, system):
> >          if not new_score_msg['valid']:
> >              new_score_msg['feedback'] = 'Invalid grader reply. Please contact the course staff.'
> >  
> > -        self.record_latest_score(new_score_msg['score'])
> > -        self.record_latest_post_assessment(score_msg)
> > -        self.child_state = self.POST_ASSESSMENT
> > +        if self.child_history:
> Okay, so it's both of the methods. And the access is for [-1], which would also fail if child_history existed and was empty ([ ] is the default value). And that "if self.child_history" returns false when child_history is [ ]. The latest_X methods have the check in them. If it were to be done by the record_latest_X, then we'd need to figure what the return value is -- an exception? But your woes presumably arose from throwing an exception out of this, so I'm fine with this, as long as it's commented.
> 
> —
> Reply to this email directly or view it on GitHub.
>