A Flock Safety automated license plate reader (ALPR) camera outside a retail store in Aurora, Colorado, on June 27, 2024. Photo by Tony Webster, Wiki Commons
A Flock Safety automated license plate reader (ALPR) camera outside a retail store in Aurora, Colorado, on June 27, 2024. Photo by Tony Webster, Wiki Commons
The issues presented by Flock cameras and their underlying software system are a lot larger than a few individuals who have used the system illegally for stalking or harassment purposes.
Republished with permission from The Conversation, by Henry F. Fradella, Arizona State University
Wherever Marci Bakely went, her ex-boyfriend seemed to know. When the Georgia single mother drove to the grocery store or a date, he often texted within minutes.
According to a Washington Post investigation, Bakely’s ex-boyfriend, Braselton Police Chief Michael Steffman, searched her license plates and those of her teenage daughter roughly 600 times through Flock Safety, a company that makes and operates networks of automated license plate readers, or ALPRs.
The Georgia Bureau of Investigation arrested Steffman in November 2025 on charges of stalking, harassment and misuse of an ALPR. He was found dead before trial.
Bakely’s case is not unique. The Post identified at least 50 officers accused of misusing ALPRs, including 26 who used Flock’s cameras to spy on current or former partners or people they hoped to meet. Its investigation has since identified at least 100 police department employees charged with or accused of misuse.
Flock says these people represent a tiny share of its more than 140,000 monthly users and that permanent audit logs help uncover misconduct.
But these abuses required no hacking or stolen credentials. Each user walked through the front door.
I’m a criminal procedure scholar and I direct a school devoted to forensics. I believe the controversy over ALPRs points to a defect in the surveillance system’s architecture, not just the criminality of some of its users.
A Search Engine for Movements
Flock cameras capture a vehicle’s plate, location and distinguishing marks down to dents or a bumper sticker. AI can sort license plate photographs by date taken. Police departments across the network can then conduct searches without warrants or supervisory approval.
In September 2026, news outlets Wired and 404 Media analyzed data that hackers had copied from one Flock camera. About 21 days of logs contained roughly 50,200 vehicles and 1.6 million images. The software detected people and bicycles, and it even isolated an American flag patch on a motorcyclist’s saddlebag. Flock said it lacked enough information to assess the hackers’ technical claims about security vulnerabilities in the camera.
Flock says customers control their data, yet a department that leaves sharing enabled may not know who is looking. In 2025, U.S. Customs and Border Protection accessed more than 80,000 cameras during an undisclosed nationwide vehicle-tracking pilot, including one police department’s cameras without its knowledge.
Logs record misconduct only after it happens, and only if someone reads them. Indianapolis police did not regularly audit Flock searches until The Washington Post flagged thousands of questionable inquiries by one officer. A systemwide audit found alleged misuse by four more officers. Other police departments likewise learned of officers’ misuse from reporters.
Flock’s August 2026 changes shorten recommended data retention from 30 to seven days and require misuse detection and case codes to document searches. But customers may retain data longer, emergencies may bypass case codes, and entering a case number can be done without judicial approval.
Examples of User Overreach
Flock’s architecture turns local cameras into a cross-jurisdictional surveillance network that agencies that never purchased the cameras may query.
Public records from Danville, Illinois, revealed more than 4,000 searches by federal agencies, including some with a potential immigration-enforcement focus, although U.S. Immigration and Customs Enforcement had no Flock contract.
A 2026 study similarly found 11,935 immigration-related searches in partial records from eight college police departments. Federal immigration agencies sometimes accessed campus camera data without campus officials’ knowledge.
The network also enables searches in other legally contested areas. In May 2025, a Texas sheriff’s office searched more than 83,000 cameras for a woman who had self-managed an abortion. The logged reason was “had an abortion, search for female.” The search reached Illinois, where state law forbids sharing plate data to enforce another state’s abortion ban. The sheriff called it a welfare check. Whatever the motive, one deputy triggered a national dragnet without independent review.
These examples reflect more than individual misuse. The platform makes the cameras easy to use by a second party, difficult to monitor and hard to control once local cameras are connected.
Why the Fourth Amendment Matters
The law remains unsettled on ALPR use.
In October 2025 a Virginia appeals court held that police officers needed no warrant to retrieve three images spanning seven minutes from Norfolk’s 172-camera network because they showed vehicles, not people. But later findings about Flock’s people-detection capabilities weaken that distinction. Analysis of the hacked camera showed that its software could identify a person and record that person’s location within an image.
In January 2026 a federal judge held that Norfolk’s then-176-camera network did not violate Fourth Amendment protections. The system did not capture anyone’s entire movements, the court reasoned, although it photographed two plaintiffs’ vehicles 475 and 325 times over four and a half months. The ruling is being appealed.
In 2018 the Supreme Court held in Carpenter v. United States that acquiring seven days of historical cellphone location records generally requires a warrant because they can reconstruct someone’s past movements. Flock’s architecture raises a related but unresolved question: Its database can also reconstruct movements, yet police officers may search it without a warrant.
Both Norfolk rulings predate the Supreme Court’s June 2026 decision in Chatrie v. United States, which held that police conducted a search under the Fourth Amendment when they obtained two hours of stored Google location history. The court did not decide whether the search was lawful. Instead, it returned the case to the lower court to determine whether the warrant satisfied the Fourth Amendment’s requirements.
That did not make the access automatically unconstitutional: The Fourth Amendment prohibits unreasonable searches, not all searches. But the police generally need a warrant supported by probable cause once their conduct is classified as a search.
The Chatrie decision distinguished vehicles exposed to public view from phone-location data that can follow someone into a home or other sensitive place. But it also expressed concern about comprehensive archives that can be searched retroactively. A license plate reader network can create a similar archive of a driver’s public movements.
The constitutional question in Norfolk, therefore, turns not only on the seven minutes retrieved, but also on the surveillance power of the 172-camera network.
Enforceable Limits
The Indianapolis cases expose the limits of internal controls in Flock’s system. Marion County Prosecutor Ryan Mears said many proposed guardrails would not have prevented the conduct. He pointed to the need for independent or judicial oversight.
I believe five safeguards could preserve Flock’s benefits while curbing abuse:
- Judicial authorization for retrospective regional or national searches based on individualized suspicion, preferably a probable-cause warrant, with an emergency exception.
- Technical access controls restricting immigration and reproductive-health searches.
- Deletion of data after a short period.
- Opt-in interstate data sharing, rather than by default.
- Independent audits of search logs and device security.
Flock’s new safeguards show that the company concedes that design matters, but private settings cannot substitute for laws. It’s not a matter of making sure officers follow the rules. It’s about creating enforceable limits.
Henry F. Fradella, Professor of Criminology and Criminal Justice, Arizona State University
This article is republished from The Conversation under a Creative Commons license. Read the original article.
The Conversation is a nonprofit, independent news organization dedicated to unlocking the knowledge of experts for the public good. We publish trustworthy and informative articles written by academic experts for the general public and edited by our team of journalists.
Help Support Factkeepers!
{"id":null,"mode":"form","open_style":"in_place","currency_code":"USD","currency_symbol":"$","currency_type":"decimal","blank_flag_url":"https:\/\/factkeepers.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/factkeepers.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":500,"top_media_type":"none","featured_image_url":false,"featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Leave a tip","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Factkeepers.com","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Help Support Factkeepers","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for being a supporter!","payment_confirmation_title":"Factkeepers.com","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to donate? You can change this amount to anything you would like.","initial":{"instruction_type":"normal","instruction_message":"How much would you like to donate? You can change this amount to anything you would like."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to donate? You can change this amount to anything you would like."},"invalid_curency":{"instruction_type":"error","instruction_message":"How much would you like to donate? You can change this amount to anything you would like."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to donate this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to donate this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to donate this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
{"date_format":"F j, Y","time_format":"g:i a","wordpress_permalink_only":"https:\/\/factkeepers.com\/the-trouble-with-flock-cameras-is-much-bigger-than-just-some-of-its-users\/","all_default_visual_states":"inherit","modal_visual_state":false,"user_is_logged_in":false,"stripe_api_key":"pk_live_40P3DgGDAHEP1QtJ0nOU4amBVl87GQiP6LNtpXpIgM209dTEvnpwJQY64VMqftnFoCJJVlDxkJGLVxPoMxsAn42G100bfKk03i7","stripe_account_country_code":"US","setup_link":"https:\/\/factkeepers.com\/wp-admin\/admin.php?page=tip-jar-wp&mpwpadmin1=welcome&mpwpadmin_lightbox=do_wizard_health_check","close_button_url":"https:\/\/factkeepers.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/closebtn.png"}