anchor.diff:    }
   
     void routeProjectLoadingEvent(JsonStreamingEvent event) {
  -    if (event.path.length < 1 || event.path[0] != 'rows') return;
  +    if (event.path.length == 1 && event.path[0] == 'error') {
  +      isError = true;
  +      if (connectivityErrorMessage == null) {
  +        connectivityErrorMessage = errorMessages[event.symbol];
  +      } else {
  +        PaperToast connectivityToast = $['toast-connectivity'];
  +        connectivityToast.show();
  +        projectsAreLoaded = true;
  +        noProjectsFound = true;
  +      }
  +      return;
  +    }
  +    else if (event.path.length == 1 && event.path[0] == 'message') {
  +      connectivityErrorMessage = event.symbol;
  +      return;
  +    }
  +    else if (event.path.length == 0) {
  +      if (isError && !projectsAreLoaded) {
  +        PaperToast connectivityToast = $['toast-connectivity'];
  +        connectivityToast.show();
  +        projectsAreLoaded = true;
  +        noProjectsFound = true;
  +      }
  +      return;
  +    }
  +    else if (event.path[0] != 'rows') return;
       if (event.path.length > 2) return;
       if (event.path.length == 2) {
         final project = new Project(event.symbol['id']);
  
positive.code:   @observable Project project;
    @observable bool projectsAreLoaded = false;
    @observable bool noProjectsFound = false;
    @observable ObservableList<Project> projects = new ObservableList() ;
  
    HttpRequest _request;
  
negative.code: 
    void getProjectsData() {
      var jsonHandler = new JsonStreamingParser();
      connectivityErrorMessage = null;
      jsonHandler.onSymbolComplete
          .listen(routeProjectLoadingEvent);
  
  