Skip to content

Error code 204 - Cron job is deployed successfully but fails to run. #30

@adam-hurwitz

Description

@adam-hurwitz

Expected

Defined Firebase Cloud Storage directory gs://my-project-name.appspot.com/ to be populated with all of the collections in the my-project-name's Firestore database when the deployed Cron job is ran on GCP with the implementation followed by the Schedule data exports documentation.

Observed

Cron job is deployed successfully, but fails to run. The logs are showing Error code 204.

screen shot 2019-01-24 at 11 24 13 am

Logs

2019-01-24 11:19:47.818 PST GET 500 0 B 998 ms AppEngine-Google; (+http://code.google.com/appengine) /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/ 0.1.0.1 - - [24/Jan/2019:11:19:47 -0800] "GET /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/ HTTP/1.1" 500 - - "AppEngine-Google; (+http://code.google.com/appengine)" "cloud-firestore-admin.[my-project-name].appspot.com" ms=998 cpu_ms=482 cpm_usd=0 loading_request=1 instance=00c61b117c5fba456c9edcc5f075ccacb339b96d0bc7a8e35beb60cd3fd50a149d4c2f296b app_engine_release=1.9.71 trace_id=65811179272fc9c721d10e6cab7cdf70

{
    httpRequest: {
    status:  500   
}
insertId:  "5c4a0fd4000c78b4e510bd7a"  
labels: {
    clone_id:  "00c61b117c5fba456c9edcc5f075ccacb339b96d0bc7a8e35beb60cd3fd50a149d4c2f296b"   
}
logName:  "projects/[my-project-name]/logs/appengine.googleapis.com%2Frequest_log"  
operation: {
    first:  true   
    id:  "5c4a0fd300ff0c7e86eb62e71c0001737e636f696e76657273652d6d656469612d73746167696e670001323031393031323474313130333331000100"   
    last:  true   
    producer:  "appengine.googleapis.com/request_id"   
}
protoPayload: {
    @type:  "type.googleapis.com/google.appengine.logging.v1.RequestLog"   
    appEngineRelease:  "1.9.71"   
    appId:  "s~[my-project-name]"   
    endTime:  "2019-01-24T19:19:48.816961Z"   
    finished:  true   
    first:  true   
    host:  "cloud-firestore-admin.[my-project-name].appspot.com"   
    httpVersion:  "HTTP/1.1"   
    instanceId:  "00c61b117c5fba456c9edcc5f075ccacb339b96d0bc7a8e35beb60cd3fd50a149d4c2f296b"   
    instanceIndex:  -1   
    ip:  "0.1.0.1"   
    latency:  "0.998139s"   
    line: [
        0: {
            logMessage:  "This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application."     
            severity:  "INFO"     
            time:  "2019-01-24T19:19:48.816504Z"     
        }
    1: {
        logMessage:  "A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 204)"      
        severity:  "ERROR"     
        time:  "2019-01-24T19:19:48.816507Z"     
    }
]
    megaCycles:  "482"   
    method:  "GET"   
    pendingTime:  "0.010711670s"   
    requestId:  "5c4a0fd300ff0c7e86eb62e71c0001737e636f696e76657273652d6d656469612d73746167696e670001323031393031323474313130333331000100"   
    resource:  "/cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/"   
    startTime:  "2019-01-24T19:19:47.818822Z"   
    status:  500   
    taskName:  "6c799fe7c1a404ec22117967738fcca9"   
    taskQueueName:  "__cron"   
    traceId:  "65811179272fc9c721d10e6cab7cdf70"   
    traceSampled:  true   
    urlMapEntry:  "auto"   
    userAgent:  "AppEngine-Google; (+http://code.google.com/appengine)"   
    versionId:  "20190124t110331"   
    wasLoadingRequest:  true   
 }
 receiveTimestamp:  "2019-01-24T19:19:48.824360342Z"  
     resource: {
         labels: {
             module_id:  "default"    
             project_id:  "my-project-name"    
             version_id:  "20190124t110331"    
             zone:  "us17"    
        }
        type:  "gae_app"   
    }
        severity:  "ERROR"  
        timestamp:  "2019-01-24T19:19:47.818822Z"  
        trace:  "projects/[my-project-name]/traces/65811179272fc9c721d10e6cab7cdf70"  
        traceSampled:  true  
    }

2019-01-24 11:19:48.816 PST
This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.
2019-01-24 11:19:48.816 PST
A problem was encountered with the process that handled this request, causing it to exit. This is likely to cause a new process to be used for the next request to your application. (Error code 204)

Configuration

  1. Billing is enabled for both the GCP and Firebase project.
  2. A Firebase Storage bucket is currently created and in use to store mp3 and txt files under a directory named content with a new empty directory named backups created to store the results of the export Cron job.

screen shot 2019-01-24 at 10 20 20 am

  1. The following permissions have been enabled as recommended in the section Configure access permissions.

screen shot 2019-01-24 at 10 17 02 am

  1. The GCP project is defined as default.
    screen shot 2019-01-24 at 12 05 35 pm

  2. The app.yaml, and app.js code has been copied as is.

  3. For the package.json the name, version, and description attributes have been changed specific to the project.

  4. In the cron.yaml the description and url attributes are customized. For url the following has been attempted in order to export all collections:

    • /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups

Attempted Solutions

  1. Version code: Incrementing the version code on subsequent deploys.
  2. cron.yaml url:
    • Adding / after directory: /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups/
    • Adding collections query but leaving it empty: /cloud-firestore-export?outputUriPrefix=gs://[my-project-name].appspot.com/backups&collections
  3. IAM Permissions:
    • Adding Cloud Datastore Import Export Admin permission to my user account my-name@domain.com since that is the email account associated to the project under gcloud config configurations list.
    • Adding the Storage Admin to @appspot.gserviceaccount.com in addition to the Owner permission.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions